home *** CD-ROM | disk | FTP | other *** search
- Path: senator-bedfellow.mit.edu!faqserv
- From: sibit@datasrv.co.il (Russ Hersch)
- Newsgroups: comp.robotics,comp.sys.intel,comp.sys.m68k,comp.sys.6809,sci.electronics,alt.comp.hardware.homebuilt,comp.answers,sci.answers,alt.answers,news.answers
- Subject: Microcontroller primer and FAQ
- Supersedes: <microcontroller-faq/primer_793809409@rtfm.mit.edu>
- Followup-To: poster
- Date: 30 Mar 1995 22:41:42 GMT
- Organization: none
- Lines: 3199
- Approved: news-answers-request@MIT.EDU
- Expires: 14 May 1995 22:39:04 GMT
- Message-ID: <microcontroller-faq/primer_796603144@rtfm.mit.edu>
- NNTP-Posting-Host: bloom-picayune.mit.edu
- Summary: This article is a primer and general FAQ about microcontrollers.
- X-Last-Updated: 1995/03/30
- Originator: faqserv@bloom-picayune.MIT.EDU
- Xref: senator-bedfellow.mit.edu comp.robotics:19277 comp.sys.intel:42593 comp.sys.m68k:8399 sci.electronics:125294 alt.comp.hardware.homebuilt:8692 comp.answers:10946 sci.answers:2391 alt.answers:8396 news.answers:41003
-
- Archive-name: microcontroller-faq/primer
- Posting-Frequency: monthly
- Last-modified: Mar. 30, 1995
-
- This article is a primer and general FAQ about microcontrollers.
- Included is a collection of information sources on various
- microcontrollers.
-
- The following topics are addressed:
-
- 0) Rantings and ravings (to make the FAQ zero-based)
-
- 1) ABOUT THIS FAQ
- 1.1) Who put this FAQ together?
- 1.2) How can I contribute to this FAQ?
- 1.3) What newsgroups will this FAQ be posted to?
- 1.4) May I distribute this FAQ or post it somewhere else?
-
- 2) MICROCONTROLLERS
- 2.1) What is a Microcontroller?
- 2.2) Applications
- 2.3) Flavors
-
- 3) THE MICROCONTROLLER MARKET
- 3.1) Shipments
- 3.2) Industrial applications
- 3.3) Deciding whose microcontroller to use
- 3.4) The players
-
- 4) MICROCONTROLLER FEATURES
- 4.1) Fabrication techniques
- 4.2) Architectural features
- 4.3) Advanced Memory options
- 4.4) Power Management and Low Voltage
- 4.5) I/O
- 4.6) Interrupts
- 4.7) Special microcontroller features
-
- 5) SOME POPULAR MICROCONTROLLERS
-
- 6) GETTING STARTED WITH MICROCONTROLLERS
- 6.1) Evaluation Kits/Boards
- 6.2) Easy chips to use
- 6.3) Software (cheap and easy)
-
- 7) MICROCONTROLLER PROGRAMMING LANGUAGES
- 7.1) Machine/Assembly language
- 7.2) Interpreters
- 7.3) Compilers
- 7.4) Fuzzy Logic and Neural Networks
-
- 8) DEVELOPMENT TOOLS
- 8.1) Simulators
- 8.2) Resident Debuggers
- 8.3) Emulators
- 8.4) Good Stereo System
-
- 9) FINDING OUT MORE ABOUT MICROCONTROLLERS
- 9.1) Books
- 9.2) Data and Reference Books
- 9.3) Periodicals
- 9.4) Internet newsgroups
- 9.5) Internet sources of information on specific microcontrollers
-
- 10) MICROCONTROLLER FREE SOFTWARE SOURCES
- 10.1) FTP sites
- 10.2) WEB pages
- 10.2) BBSs
- 10.3) Mailing lists
-
-
- 0) Rantings and ravings
-
- Disclaimer: Just so it is understood, the "rantings and ravings" are
- my rantings and ravings. My readers are refined and sophisticated
- and would never rant or rave. I, on the other hand, sit in front of
- the TV in torn underwear and drink beer out of the bottle.
-
-
- My sincerest apologies to anyone that wrote to me, and didn't get a
- reply. I was inundated this time, and I'm afraid that I wasn't too
- careful in keeping track of my email. Also, some of those I did
- respond to didn't hear from me because their email addresses were
- invalid (or, at least my system thinks so). So, if you feel
- neglected, or you submitted some information that didn't make it into
- this month's update, please drop me a note and let me know. A
- thousand pardons!
-
-
- Well, the verdict is in. No, I'm not talking about OJ - I'm talking
- about one-part FAQs versus multi-part. The response has been nearly
- unanimous to keep the FAQs in one piece. So, one piece it is.
-
-
- Lots of good stuff this time...
-
- Thanks to Olaf 'Olu' Pfeiffer of Hitex who has made this FAQ
- available on a web page:
- http://www.ba-karlsruhe.de/automation/ctrl/FAQ/microFAQ/microFAQ.html
-
- Thanks to Ted MacDonald for the following hint: "If you contact
- Motorola at 800-521-6274 and order literature #M68HC11RM/AD, they
- will send, free of charge, a reference manual for the 6811. Thought
- this might be useful for others."
-
-
- National Semiconductor / MetaLink COP8780 Evaluation/Programming Unit
-
- Robin Getz of National Semiconductor supplied me with a
- pre-release version of the EPU. I haven't really had much of an
- opportunity to put it through its paces yet, but it's an
- interesting looking new product. This kit offers designers a
- low-cost tool for an introduction to National's COP8 Basic Family
- of 8-bit microcontrollers.
-
- This development tool gives you an inexpensive way to benchmark
- and evaluate microcontroller code in real-time. With its built in
- MIRCOWIRE/PLUS interface, it can interface to numerous
- MICROWIRE/PLUS devices such as EPROMS, EEPROMS, D/As, A/Ds, DASs,
- and others, to give a full featured system. The system includes
- the EPU board, 2 8780Cx parts (early kits have OTPs, later kits
- will have windowed parts), assembler, debugger, sample code, a
- very limited C compiler, a wall power supply, and a really great
- box :-).
-
- The EPU is an in-circuit simulator. It plugs into your target
- system in place of an COP880C microcontroller and it executes code
- using a COP8780CJ [emulator] microcontroller on the EPU board.
- Like a software simulator, it does not run real time. Hardware
- and software control the microcontroller cycle-by-cycle, and break
- handling and tracing are done completely through software.
-
- Documentation includes a COP8 Series Microcontroller User's Manual
- (this is missing in the first run, you'll have to ask for one), a
- comprehensive assembler manual, and various product line
- literature. The documentation on the kit itself is scant, but
- gives enough information to get the job done.
-
- This is a nice way to get started with microcontrollers, and the
- COP800 is an interesting chip with a powerful and efficient
- instruction set. For only $125, this is worth checking out.
- Mention this FAQ, and I'm sure they'll be glad to double the
- price.
-
-
- Philips Semiconductor / CEIBO DS750 Devolopment Tools
-
- A good way to learn about 8051 programming, this kit is based on
- the 8xc7xx series which are very low-end, inexpensive micros.
- They are offered with less memory (1k, 2k, etc.) and fewer
- features. In fact the 83c750 sells for only $1 in very high OEM
- volumes.
-
- The kit includes a DS750 board, source level debugger, and
- utilities. Both DOS and Windows versions of the software are
- included on the diskette, and installation is a snap. I don't
- understand why, but no assembler is included! A number of
- assemblers and C compilers are compatible with (or adaptable to)
- the source level debugger, including: Keil/Franklin, IAR, and
- Micro Computer Control. If you're on a budget, the Micro Computer
- Control package is only $100 - the prices of the other packages
- are a bit more creative :-). Philips also has the MetaLink
- assembler available for free on their BBS.
-
- The DS750 has 3 operating modes: real-time, simulator, and
- simulator plus. It plugs into your target system in place of an
- 87c750 (24 pin) and it executes code using an 87c752 [emulator] on
- the DS750 board.
-
- Besides being a very nice platform for testing your code
- real-time, the enclosed manual makes this package really
- worthwhile. In addition to the obligatory startup and operation
- information, the book includes schematics and theory of the
- board's operation. Five experiments guide the user on
- understanding the workings and capabilities of the 8051 family.
-
- Priced at only $100, a truckload of these have already been sold,
- and for good reason. If you're interested in learning how to use
- an 8051, you can't go wrong by buying this kit.
-
-
- Minds-Online engineering ftp site and mailing lists:
-
- A new ftp site (ftp.std.com:/customers2/nonprofits/minds-online)
- should by now be up and running. It will have over 100 Mbytes of
- engineering material. Chock full of compilers, assemblers, code,
- articles, fuzzy logic, and much more. This is definitely worth
- checking out!
-
- A mailing list for announcing significant postings on this ftp
- site is being gathered.
-
- Another mailing list, this one MODERATED, will carry messages from
- real engineers who are working on designs slated for volume
- production. "No tire-kickers, no students, no academics, no
- sleazy something-for-nothing ripoff artists, no hobbyists, and no
- totally lost people will be able to post e-mail." (Uh, it looks
- like that sort of leaves out yours truly, I certainly belong in
- several, if not most, of those categories).
-
- If you would like to be on one or both of these lists, send your
- email address to: csmall@tiac.net. Put a good word in for me
- while you're at it, my mind's usually off-line :-).
-
-
- New book out!
-
- A great book just landed on my desk. Not exactly about
- microcontrollers, but it isn't another silly book by or about
- Madonna either. The book is Posix.4: Programming for the Real
- World by Bill O. Gallmeister and published by O'Reilly and
- Associates. Written with a Unix perspective, the book is about
- programming in the real world. Yeah, here's our connection with
- microcontrollers. You know - microwave ovens, car braking
- systems, mother-in-law detectors :-). Part I of the book
- describes the Posix standard (what it is, what it isn't, and what
- it's for), and explains the principles of real time programming
- (tasking, messages, scheduling, I/O, and performance) and why Unix
- isn't fit for real-time programming. Part II is a reference on
- the Posix functions and header files. Part III contains much of
- the code for the exercises in the book.
-
- I'm enjoying this book - highly recommended!
-
-
- Take care of yourselves,
-
- Uncle Russ
-
-
- 1) ABOUT THIS FAQ
-
- 1.1) Who put this FAQ together?
-
- From time to time, general questions about microcontrollers (from
- beginners to experienced designers) pop up in the newsgroups. It
- seemed that a general primer/FAQ on microcontrollers might be useful.
-
- Much of this document could be considered as a sort of a primer on
- microcontrollers. For those of you with previous experience,
- sections 9 and 10 might be of special interest (especially for those
- of you looking for that elusive "free COBOL compiler for the 1802").
-
-
- 1.2) How can I contribute to this list?
-
- I please ask that if you have any suggestions or additions, or you
- would like to correct any of the information contained herein, please
- send me a note.
- My Email address is: sibit@datasrv.co.il
- My Smail address is:
- Russ Hersch
- HaVradim 11
- Ginot Shomron
- ISRAEL
-
- Thanks to recent contributors to this document:
- Dave Dunfield (Dunfield Development Systems)
- Cecil Moore (Intel)
- Ed Thompson (Micro Computer Control Corporation)
- Kevin Gardner (Philips Semiconductor)
- Victor Weiman (CEIBO)
- Matt Albright (Motorola)
- Tom Mornini (Parallax, Inc.)
- Ken Tindell (Uppsala University, Sweden)
- Paul K. Johnson (Hewlett Packard)
- Reuven Melaver (Eastronics - National Semiconductor
- Representative in Israel)
- Olaf 'Olu' Pfeiffer (Hitex)
- Ted MacDonald
- John Piccirillo
- Paul Hills
- Jack Coats
- Ed Sarkesian (who uses his old dirty socks to keep his
- mother-in-law away
- Mike Cepek (for pointing out so many errors :-)
-
-
- Very special thanks to Robin L. Getz (National Semiconductor) who
- probably could be considered an honorary co-author of this FAQ. :-)
-
- Also, thanks to those who have posted questions and to those who have
- posted answers. Thanks to "my new friends" who send suggestions and
- encouragement, as well as the occasional question. Special thanks to
- my mother-in-law, who thankfully will probably never read this
- document ;-).
-
-
- 1.3) What newsgroups will this FAQ be posted to?
-
- This FAQ will be posted to the following newsgroups:
- comp.robotics
- comp.sys.intel
- comp.sys.m68k
- comp.sys.6809
- sci.electronics
- alt.comp.hardware.homebuilt
-
- I will post once a month - on or about the 26th of each month.
-
-
- 1.4) May I distribute this FAQ or post it somewhere else?
-
- I am putting no restrictions on the use of this FAQ except - It must
- be distributed in its entirety with the copyright notice, and no
- financial gain may be realized from it. After all, I have spent, and
- continue to spend, a lot of time on this.
-
- For this reason I have appended a copyright statement to the end of
- this FAQ. I feel pretty silly doing this, but I just want to protect
- myself. The copyright does not limit the use of this list for
- noncommercial purposes. I hereby give my permission to one and all
- to pass this list around and post it wherever you want - as long as
- it is not for financial gain.
-
- Thank you.
-
-
- 2) MICROCONTROLLERS
-
-
- 2.1) What is a Microcontroller?
-
- A controller is used to control (makes sense!) some process or aspect
- of the environment. A typical microcontroller application is the
- monitoring of my house. As the temperature rises, the controller
- causes the windows to open. If the temperature goes above a certain
- threshold, the air conditioner is activated. If the system detects
- my mother-in-law approaching, the doors are locked and the windows
- barred. In addition, upon detecting that my computer is turned on,
- the stereo turns on at a deafening volume (for more on this, see the
- section on development tools).
-
- At one time, controllers were built exclusively from logic
- components, and were usually large, heavy boxes (before this, they
- were even bigger, more complex analog monstrosities). Later on,
- microprocessors were used and the entire controller could fit on a
- small circuit board. This is still common - you can find many [good]
- controllers powered by one of the many common microprocessors
- (including Zilog Z80, Intel 8088, Motorola 6809, and others).
-
- As the process of miniaturization continued, all of the components
- needed for a controller were built right onto one chip. A one chip
- computer, or microcontroller was born. A microcontroller is a highly
- integrated chip which includes, on one chip, all or most of the parts
- needed for a controller. The microcontroller could be called a
- "one-chip solution". It typically includes:
- CPU (central processing unit)
- RAM (Random Access Memory)
- EPROM/PROM/ROM (Erasable Programmable Read Only Memory)
- I/O (input/output) - serial and parallel
- timers
- interrupt controller
-
- By only including the features specific to the task (control), cost
- is relatively low. A typical microcontroller has bit manipulation
- instructions, easy and direct access to I/O (input/output), and quick
- and efficient interrupt processing. Microcontrollers are a "one-chip
- solution" which drastically reduces parts count and design costs.
-
-
- 2.2) Applications
-
- In addition to control applications such as the above home monitoring
- system, microcontrollers are frequently found in embedded
- applications. Among the many uses that you can find one or more
- microcontrollers: appliances (microwave oven, refrigerators,
- television and VCRs, stereos), automobiles (engine control,
- diagnostics, climate control), environmental control (greenhouse,
- factory, home), instrumentation, aerospace, and thousands of other
- uses.
-
- Microcontrollers are used extensively in robotics. In this
- application, many specific tasks might be distributed among a large
- number of microcontrollers in one system. Communications between
- each microcontroller and a central, more powerful microcontroller (or
- microcomputer, or even large computer) would enable information to be
- processed by the central computer, or to be passed around to other
- microcontrollers in the system.
-
- A special application that microcontrollers are well suited for is
- data logging. Stick one of these chips out in the middle of a corn
- field or up in a ballon, and monitor and record environmental
- parameters (temperature, humidity, rain, etc). Small size, low power
- consumption, and flexibility make these devices ideal for unattended
- data monitoring and recording.
-
-
- 2.3) Flavors
-
- Microcontrollers come in many flavors and varieties. Depending on
- the power and features that are needed, you might choose a 4 bit, 8
- bit, 16 bit, or 32 bit microcontroller. In addition, some
- specialized versions are available which include features specific
- for communications, keyboard handling, signal processing, video
- processing, and other tasks.
-
-
- 3) THE MICROCONTROLLER MARKET
-
- Thanks to Robin Getz of National Semiconductor for supplying much of
- the material in this section.
-
-
- 3.1) Shipments
-
- WorldWide Microcontroller Shipments (in millions of dollars)
-
- '90 '91 '92 '93 '94 '95 '96 '97 '98 '99 '00
- 4-bit 1,393 1,597 1,596 1,698 1,761 1,826 1,849 1,881 1,856 1,816 1,757
- 8-bit 2,077 2,615 2,862 3,703 4,689 5,634 6,553 7,529 8,423 9,219 9,715
- 16-bit 192 303 340 484 810 1,170 1,628 2,191 2,969 3,678 4,405
-
-
- WorldWide Microcontroller Shipments (in Millions)
-
- '90 '91 '92 '93 '94 '95 '96 '97 '98 '99 '00
- 4-bit 778 906 979 1036 1063 1110 1100 1096 1064 1025 970
- 8-bit 588 753 843 1073 1449 1803 2123 2374 2556 2681 2700
- 16-bit 22 38 45 59 106 157 227 313 419 501 585
-
-
- Source: WSTS & ICE - 1994
-
- If you were wondering why you should bother learning about
- microcontrollers - well, the tables above should fairly scream the
- answer at you. Microcontrollers will be *BIG* business - we're
- talking piles of cash - billions!
-
- Notice that even the lowly 4-bit device is holding its own - what use
- is a 16-bit part in a toaster oven? Also notice that the 8-bit
- market just keeps growing, and will probably continue to grow. 8-bit
- devices account for over half of the market, and will eventually grab
- even more. Now do you understand why every silicon manufacturer is
- really pushing their 8-bit microcontrollers?
-
-
- 3.2) Industrial applications
-
- Average Semiconductor Content per Passenger Automobile (in Dollars)
-
- '90 '91 '92 '93 '94 '95 '96 '97 '98 '99 '00
- $ 595 634 712 905 1,068 1,237 1,339 1,410 1,574 1,852 2,126
-
- Source: ICE - 1994
-
- The automotive market is the most important single driving force in
- the microcontroller market, especially at it's high end. Several
- microcontroller families were developed specifically for automotive
- applications and were subsequently modified to serve other embedded
- applications.
-
- The automotive market is demanding. Electronics must operate under
- extreme temperatures and be able to withstand vibration, shock, and
- EMI. The electronics must be reliable, because a failure that causes
- an accident can (and does) result in multi-million dollar lawsuits.
- Reliability standards are high - but because these electronics also
- compete in the consumer market - they have a low price tag.
-
- Automotive is not the only market that is growing. DataQuest says
- that in the average North American's home there are 35
- microcontrollers. By the year 2000 - that number will grow to 240.
- Consumer electronics is a booming business.
-
-
- 3.3) Deciding whose microcontroller to use
-
- When deciding which devices to implement in a design, there are lots
- of things to consider besides who else is using these devices (and
- how many are they using).
- - Can I expect help when I am having problems?
- - What development tools are available and how much do they cost?
- - What sort of documentation is available (reference manuals,
- application notes, books)?
- - Can I work a deal by purchasing more devices at one manufacturer?
- That is, purchasing not only the microcontroller, but also
- peripherals (A/D, memory, voltage regulator, etc.) from one
- company).
- - Do they support OTPs, windowed devices, mask parts?
-
-
- 3.4) The players
-
- Here is a list of the big guys. Keep in mind that units does not
- equal dollars. Since some companies deal primarily in higher end
- devices, they need to sell fewer units to achieve a higher dollar
- total.
-
- Company Units (k) 1993
- -----------------------------------------------
- Motorola 358,894
- Mitsubishi 71,674
- NEC 70,180
- Hitachi 67,873
- Philips 56,680
- Intel 46,876
- SGS-Thomson 37,350
- Microchip 35,477
- Matsushitta 34,200
- Toshiba 32,205
- National Semiconductor 31,634
- Zilog 31,000
- Texas Instruments 29,725
- Siemens 20,874
- Sharp 17,505
-
- SOURCE: DataQuest June 1994
-
-
- The above numbers are just somebody's best guess - believe them if
- you want to. Since they get paid to come up with these numbers, one
- would hope that they would be fairly reliable. However, one of these
- numbers is wrong for certain (and Robin Getz won't say whether it
- should be higher or lower ;-).
-
-
- 4) MICROCONTROLLER FEATURES
-
- Thanks to Robin Getz of National Semiconductor who supplied some of
- the material in this section.
-
-
- 4.1) Fabrication techniques
-
- CMOS - Complementary Metal Oxide Semiconductor
-
- This is the name of a common technique used to fabricate most (if
- not all) of the newer microcontrollers. CMOS requires much less
- power than older fabrication techniques, which permits battery
- operation. CMOS chips also can be fully or near fully static,
- which means that the clock can be slowed up (or even stopped)
- putting the chip in sleep mode. CMOS has a much higher immunity
- to noise (power fluctuations or spikes) than the older fabrication
- techniques.
-
-
- PMP - Post Metal Programming (National Semiconductor)
-
- PMP is a high-energy implantation process that allows
- microcontroller ROM to be programmed AFTER final metalization.
- Usually ROM is implemented in the second layer die, with nine or
- ten other layers then added on top. That means the ROM pattern
- must be specified early in the production process, and completed
- prototypes devices won't be available typically for six to eight
- weeks. With PMP, however, dies can be fully manufactured through
- metalization and electrical tests (only the passivation layers
- need to be added), and held in inventory. This means that ROM can
- be programmed late in production cycle, making prototypes
- available in only two weeks.
-
-
- 4.2) Architectural features
-
- Von-Neuman Architecure
-
- Microcontrollers based on the Von-Neuman architecture have a
- single "data" bus that is used to fetch both instructions and
- data. Program instructions and data are stored in a common main
- memory. When such a controller addresses main memory, it first
- fetches an instruction, and then it fetches the data to support
- the instruction. The two separate fetches slows up the
- controller's operation.
-
-
- Harvard Architecture
-
- Microcontrollers based on the Harvard Architecture have separate
- data bus and an instruction bus. This allows execution to occur
- in parallel. As an instruction is being "pre-fetched", the
- current instruction is executing on the data bus. Once the
- current instruction is complete, the next instruction is ready to
- go. This pre-fetch theoretically allows for much faster execution
- than a Von-Neuman architecture, but there is some added silicon
- complexity.
-
-
- CISC
-
- Almost all of today's microcontrollers are based on the CISC
- (Complex Instruction Set Computer) concept. The typical CISC
- microcontroller has well over 80 instructions, many of them very
- powerful and very specialized for specific control tasks. It is
- quite common for the instructions to all behave quite differently.
- Some might only operate on certain address spaces or registers,
- and others might only recognize certain addressing modes.
-
- The advantages of the CISC architecture is that many of the
- instructions are macro-like, allowing the programmer to use one
- instruction in place of many simpler instructions.
-
-
- RISC
-
- The industry trend for microprocessor design is for Reduced
- Instruction Set Computers (RISC) designs. This is beginning to
- spill over into the microntroller market. By implementing fewer
- instructions, the chip designed is able to dedicate some of the
- precious silicon real-estate for performance enhancing features.
- The benefits of RISC design simplicity are a smaller chip, smaller
- pin count, and very low power consumption.
-
- Among some of the typical features of a RISC processor:
- - Harvard architecture (separate buses for instructions and
- data) allows simultaneous access of program and data, and
- overlapping of some operations for increased processing
- performance
- - Instruction pipelining increases execution speed
- - Orthogonal (symmetrical) instruction set for programming
- simplicity; allows each instruction to operate on any
- register or use any addressing mode; instructions have no
- special combinations, exceptions, restrictions, or side
- effects
-
-
- SISC
-
- Actually, a microcontroller is by definition a Reduced Instruction
- Set Computer (at least in my opinion). It could really be called
- a Specific Instruction Set Computer (SISC). The [original] idea
- behind the microcontroller was to limit the capabilities of the
- CPU itself, allowing a complete computer (memory, I/O, interrupts,
- etc) to fit on the available real estate. At the expense of the
- more general purpose instructions that make the standard
- microprocessors (8088, 68000, 32032) so easy to use, the
- instruction set was designed for the specific purpose of control
- (powerful bit manipulation, easy and efficient I/O, and so on).
-
- Microcontrollers now come with a mind boggling array of features
- that aid the control engineer - watchdog timers, sleep/wakeup
- modes, power management, powerful I/O channels, and so on. By
- keeping the instruction set specific (and reduced), and thus
- saving valuable real estate, more and more of these features can
- be added, while maintaining the economy of the microcontroller.
-
-
- 4.3) Advanced Memory options
-
- EEPROM - Electrically Erasable Programmable Read Only Memory
-
- Many microcontrollers have limited amounts of EEPROM on the chip.
- EEPROM seems more suited (becuase of its economics) for small
- amounts of memory that hold a limited number of parameters that
- may have to be changed from time to time. This type of memory is
- relatively slow, and the number of erase/write cycles allowed in
- its lifetime is limited.
-
-
- FLASH (EPROM)
-
- Flash provides a good better solution than regular EEPROM when
- there is a requirement for large amounts of non-volatile program
- memory. It is both faster and permits more erase/write cycles
- than EEPROM.
-
-
- Battery backed-up static RAM
-
- Battery backed-up static RAM is useful when a large non-volatile
- program and DATA space is required. A major advantage of static
- RAM is that it is much faster than other types of non-volatile
- memory so it is well suited for high performance application.
- There also are no limits as to the number of times that it may be
- written to so it is perfect for applications that keep and
- manipulate large amounts of data locally.
-
-
- Field programming/reprogramming
-
- Using nonvolatile memory as a place to store program memory allows
- the device to be reprogrammed in the field without removing the
- microcontroller from the system that it controls. One such
- application is in automotive engine controllers. Reprogrammable
- non-volatile program memory on the engine's microcontroller allows
- the engine controller program to be modified during routine
- service to incorporate the latest features or to compensate for
- such factors as engine aging and changing emissions control laws
- (or even to fix bugs!!). Reprogramming of the microcontroller
- could become a standard part the routine engine tune-up.
-
- Almost every application could benefit from this type of program
- memory - If a modem's hardware supported it, you could remotely
- upgrade your modem from Vfast to V.34, or incorporate new features
- such as voice control or a digital answering machine.
-
-
- OTP - One Time Programmable
-
- An OTP is a PROM (Programmable Read-Only-Memory) device. Once
- your program is written into the device with a standard EPROM
- programmer, it can not be erased or modified. This is usually
- used for limited production runs before a ROM mask is done in
- order to test code.
-
- A OTP (One Time Programmable) part uses standard EPROM, but the
- package has no window for erasing. Once your program is written
- into the device with a standard EPROM programmer, it cannot be
- erased or modified. (Well, sort of - any bit that is a one can be
- changed to a zero - but a bit that is a zero cannot be changed
- into a one).
-
- As product design cycles get shorter, it is more important for
- micro manufacturers to offer OTPs as an option. This was commonly
- used for limited production runs before a ROM mask in order to
- test code. However, one problem with Mask ROM is that
- programming, setup, and engineering charges make it economical
- only when the systems manufacturer purchases large quantities of
- identically programmed micros. Then when you discover THAT bug
- (and find it and fix your code), you have quantities of *old
- buggy* micros around that you have to throw away. Not to mention
- that lead time (the time when you submit your code to the micro
- manufacture, to the time you receive your micro with your code on
- it) can be at least 8 weeks, and as bad as 44 weeks.
-
-
- Software protection
-
- Either by encryption or fuse protection, the programmed software
- is protected against unauthorized snooping (reverse engineering,
- modifications, piracy, etc.).
-
- This is only an option on OTPs and Windowed devices. On Masked
- ROM devices, security is not needed - the only way to read your
- code would be to rip the microcontroller apart with a scanning
- electron microscope - and how many people really have one of
- those?
-
- Although - and this is a manufacturer's little know fact - when a
- silicon manufacturer makes your ROMed microcontroller - they have
- to test it in order to make sure that it is programmed properly.
- (You should see what a spec of dust does on a mask :-) In order
- to test this, they must be able to read out the ROM and compare it
- to the code you submitted. This mode is known as test mode. IN
- TEST MODE YOU CAN READ OUT THE ROM OF ANY DEVICE. Anybody who
- tells you different, does not know what they are talking about -
- or is lying. This is usually not a big deal because test mode is
- ***VERY*** confidential, and (usually) only known by that
- manufacturer (i.e. you cannot put a device into test mode by
- accident). Test mode is ONLY applicable with ROMed devices.
-
-
- 4.4) Power Management and Low Voltage
-
- Low voltage parts
-
- Since automotive applications have been the driving force behind
- most microcontrollers, and 5 Volts is very easy to do in a car,
- most microcontrollers have only supported 4.5 - 5.5 V operation.
- In the recent past, as consumer goods are beginning to drive major
- segments of the microcontroller market, and as consumer goods
- become portable and lightweight, the requirement for 3 volt (and
- lower) microcontrollers has become urgent (3 volts = 2 battery
- solution / lower voltage = longer battery life). Most low voltage
- parts in the market today are simply 5 volt parts that were
- modified to operate at 3 volts (usually at a performance loss).
- Some micros being released now are designed from the ground up to
- operate properly at 3.0 (and lower) voltages, which offer
- comparable performance of the 5 volt devices.
-
-
- Now, why are voltages REALLY going down on ICs? Paul K. Johnson
- (of Hewlett-Packard) explains:
-
- There are a few interesting rules of thumb regarding transistors:
- 1) The amount of power they dissipate is proportional to their
- size. If you make a transistor half as big, it dissipates
- half as much power.
- 2) Their propagation delay is proportional to their size. If you
- make a transistor half as big, it's twice as fast.
- 3) Their cost is proportional to the square of their size. If
- you make them half as big, they cost one quarter as much.
-
- If you make a transistor smaller, you improve the power, speed,
- and cost. The only drawback is that they are harder to make.
- (Well, how hard can it be for HP, IBM, Motorola, National, etc?)
- Everybody in the world wants to make transistors smaller and
- smaller, the advantages are enormous.
-
- For years people have been using 5 Volts to power IC's. Because
- the transistors were large, there was little danger damaging the
- transistor putting this voltage across it. However, now that the
- transistors are getting so small, 5 Volts will actually fry them.
- The only way around this is to start lowering the voltage. This
- is why people are now using 3 (actually 3.3) Volt logic, and lower
- in the next few years. It isn't just because of batteries.
-
-
- Brownout Protection
-
- Brownout protection is usually an on-board protection circuit that
- resets the device when the operating voltage (Vcc) is lower than
- the brownout voltage. The device is held in reset and will remain
- in reset when Vcc stays below the Brownout voltage. The device
- will resume execution (from reset) after Vcc has risen above the
- brownout Voltage.
-
-
- Idle/Halt/Wakeup
-
- The device can be placed into IDLE/HALT mode by software control.
- In both Halt and Idle conditions the state of the microcontroller
- remains. RAM is not cleared and any outputs are not changed. The
- terms idle and halt often have different definitions, depending on
- the manufacturer. What some call idle, others may call halt, and
- vice versa. It can be confusing, so check the data sheet for the
- device in question to be sure.
-
- In IDLE mode, all activities are stopped except:
- - associated on-board oscillator circuitry
- - watchdog logic (if any)
- - the clock monitor
- - the idle timer (a free running timer)
- Power supply requirements on the microcontroller in this mode are
- typically around 30% of normal power requirements of the
- microprocessor. Idle mode is exited by a reset, or some other
- stimulus (such as timer interrupt, serial port, etc.). A special
- timer/counter (the idle timer) causes the chip to wake up at a
- regular interval to check if things are OK. The chip then goes
- back to sleep.
-
- IDLE mode is extremely useful for remote, unattended data logging
- - the microprocessor wakes up at regular intervals, takes its
- measurements, logs the data, and then goes back to sleep.
-
- In Halt mode, all activities are stopped (including timers and
- counters). The only way to wake up is by a reset or device
- interrupt (such as an I/O port). The power requirements of the
- device are minimal and the applied voltage (Vcc) can sometimes be
- decreased below operating voltage without altering the state
- (RAM/Outputs) of the device. Current consumption is typically
- less than 1 uA.
-
- A common application of HALT mode is in laptop keyboards. In
- order to have maximum power saving, the controller is in halt
- until it detects a keystroke (via a device interrupt). It then
- wakes up, decodes and sends the keystroke to the host, and then
- goes back into halt mode, waiting either for another keystroke, or
- information from the host.
-
-
- Multi-Input Wakeup (National Semiconductor)
-
- The Multi-Input WakeUp (MIWU) feature is used to return (wakeup)
- the microcontroller from either HALT or IDLE modes. Alternately
- MIWU may also be used to generate up to 8 edge selectible external
- interrupts. The user can select whether the trigger condition on
- the pins is going to be either a positive edge (low to high) or a
- negative edge (high to low).
-
-
- 4.5) I/O
-
- UART
-
- A UART (Universal Asynchronous Receiver Transmitter) is a serial
- port adapter for asynchronous serial communications.
-
-
- USART
-
- A USART (Universal Synchronous/Asynchronous Receiver Transmitter)
- is a serial port adapter for either asynchronous or synchronous
- serial communications. Communications using a USART are typically
- much faster (as much as 16 times) than with a UART.
-
-
- Synchronous serial port
-
- A synchronous serial port doesn't require start/stop bits and can
- operate at much higher clock rates than an asynchronous serial
- port. Used to communicate with high speed devices such as memory
- servers, display drivers, additional A/D ports, etc. Can also be
- used to implement a simple microcontroller network.
-
-
- SPI (Motorola)
-
- An SPI (serial peripheral interface) is a synchronous serial port.
-
-
- SCI
-
- An SCI (serial communications interface) is an enhanced UART
- (asynchronous serial port).
-
-
- I2C bus - Inter-Integrated Circuit bus (Philips)
-
- The I2C bus is a simple 2 wire serial interface developed by
- Philips. It was developed for 8 bit applications and is widely
- used in consumer electronics, automotive and industrial
- applications. In addition to microcontrollers, several
- peripherals also exist that support the I2C bus.
-
- The I2C bus is a two line, multi-master, multi-slave network
- interface with collision detection. Up to 128 devices can exist
- on the network and they can be spread out over 10 meters. Each
- node (microcontroller or peripheral) may initiate a message, and
- then transmit or receive data. The two lines of the network
- consist of the serial data line and the serial clock line. Each
- node on the network has a unique address which accompanies any
- message passed between nodes. Since only 2 wires are needed, it
- is easy to interconnect a number of devices.
-
-
- MICROWIRE/PLUS (National Semiconductor)
-
- MICROWIRE/PLUS is a serial synchronous bi-directional
- communications interface. This is used on National Semiconductor
- Corporation's devices (microcontrollers, A/D converters, display
- drivers, EEPROMS, etc.).
-
-
- CAN & J1850
-
- CAN (Controller Area Network) is a mutiplexed wiring scheme that
- was developed jointly by Bosh and Intel for wiring in automobiles.
- J1850 is the SAE (Society of Automotive Engineers) multiplexed
- automotive wiring standard that is currently in use in North
- America.
-
- Both of these groups have the "NOT INVENTED HERE" syndrome and
- refuse to work with each other's standard. The standards are quite
- different and are not compatible at all.
-
- The CAN specification seems to be the one that is being used in
- industrial control both in North American and Europe. With lower
- cost microcontrollers that support CAN, CAN has a good potential
- to take off.
-
-
- Analog to Digital Conversion (A/D)
-
- Converts an external analog signal (typically relative to voltage)
- and converts it to a digital representation. Microcontrollers
- that have this feature can be used for instrumention,
- environmental data logging, or any application that lives in an
- analog world.
-
- The various types of A/D converters that can be found:
-
- Succesive Approximation A/D converters -- This the most common
- type of A/D and is used in the majority of microcontrollers. In
- this technique, the converter figures out each bit at a time (most
- significant first) and finds if the next step is higher or lower.
- This way has some benefits - it takes exactly the same amount of
- time for any conversion - it is very common - (and therefore very
- cheap). However it also has some disadvantages - it is slow - for
- every bit it takes at least one clock cycle - the best an 8-bit
- A/D can do is at least 8 clock cycles (and a couple for
- housekeeping). Because it takes so long - it is a power hog as
- compared to the other types of A/Ds.
-
- Single Slope A/D converters -- This is the type of converter that
- you can build yourself (if the microcontroller has a couple of
- analog blocks on it). Your single slope A/D converter would
- include Analog Mux / comparator / timer (8-bit timer = 8 bit A/D -
- 16-bit timer = 16 bit A/D) with input capture and a constant
- current source. The only microcontroller (that I know of) that
- has all of this on it is National's COP888EK.
-
- First Step is to clear the timer to 0000 and then start it. It is
- a simple matter to hang an external capacitor, and charge it with
- the constant current source (linearly because of the current
- source) when the voltage on the cap exceeds the sampling voltage,
- the comparitor toggles, stops the timer - and voila - you have the
- voltage in uSecs - with 16-bit accuracy. The only drawback is you
- can't really expect 16 bits (14 yes) - the conversion time varies
- quite a bit, and it is SLOW.
-
- Delta-Sigma A/Ds converters -- This type of A/D converter is found
- on higher-end DSPs. These are the hardest to understand of the
- A/Ds because it just makes a best guess (a little National
- Semiconductor humor here :-). Delta sigma A/Ds can be broken down
- into two main parts.
-
- The modulator which does the A/D conversion and the filter, which
- turns the output of the modulator into a format suitible for the
- microcontroller (or DSP).
-
- The modulator is very simple - it just compares the input voltage
- to the average of the last 100 (or so) modulator outputs and
- decides if the input is higher or lower than the average. This
- happens millions of times a second, resulting in a high speed
- single-bit datastream of 1s and 0s who's *average* is equal to the
- input voltage. Becuse the ouput is only a one or a zero, there are
- very few sources of errors. This is the main reason that
- delta-sigma A/Ds are **very** accurate.
-
- The filter comes after the modulator ... and this filter is
- essentially a big DSP block. It must take the very high speed
- stream of ones and zeros and turn it into a slower speed stream of
- 16-bit (or greater) words to be used by the microcontroller. This
- process is called decimation and the filter is often called a
- "comb filter". Another digital filter follows this stage and
- rejects unwanted frequencies. This filter performs a similar
- function to the anti-aliasing filter required in many traditional
- A/D appliactions, but it does it at an unprecedented level of
- performance and at low cost. This is the other major benefit of
- delta-sigma A/Ds.
-
- Flash A/D -- This is the basic architecure for the fastest
- category of A/Ds. The flash converter involves looking at each
- level that is possible and instantaneously saying what level the
- voltage is at. This is done by setting up comparators as
- threshold detectors with each detector being set up for a voltage
- exaclty 1 LSB higher than the detector below it. The benefit of
- this architecture is that with a single clock cycle, you can tell
- exactly what the input voltage is - that is why it is so fast.
- The disadvantage is that to achieve 8-bit accuracy you need 256
- comparators and to achieve 10-bit accuracy you need 1024
- comparators. To make these comparators operate at higher speeds,
- they have to draw LOTS of current, and beyond 10 bits, the number
- of comparators required becomes totally unmanageable.
-
-
- D/A (Digital to Analog) Converters
-
- This feature takes a Digital number and converts it to a analog
- output. The number 50 would be changed to the analog output of
- (50/256 * 5Volts) = .9765625V on a 8-bit / 5 Volt system.
-
-
- Pulse width modulator
-
- Often used as a digital-to-analog conversion technique. A pulse
- train is generated and regulated with a low-pass filter to
- generate a voltage proportional to the duty cycle.
-
-
- Pulse accumulator
-
- A pulse accumulator is an event counter. Each pulse increments
- the pulse accumulator register, recording the number of times this
- event has occurred.
-
-
- Input Capture
-
- Input Capture can measure external frequencies or time intervals
- by copying the value from a free running timer into a register
- when an external event occurs.
-
-
- Comparator
-
- One or more standard comparators can sometimes be placed on a
- microcontroller die. These comparators operate much like standard
- comparators however the input and output signals are available on
- the microcontroller bus.
-
-
- Mixed (Analog-Digital) Signal
-
- We live in an analog world where the information we see, hear,
- process, and exchange with each other, and with our mechanical and
- electronic systems, is always an analog quantity - pressure,
- temperature, voltage, current, air and water flow are always
- analog entities. They can be digitized for more efficient
- sorting, storage and transmittal, but the interface - the input
- and output - is almost always analog. Thus the essence of analog
- electronics lies in sensing continuously varying information,
- shaping and converting it for the efficiency of digital processing
- and transmission, and reshaping the digital data to an analog
- signal at the other end.
-
- Mixed analog-digital devices are being used increasingly to
- integrate the complex functions of high-speed telecommunications,
- or the real-time data processing demanded by industrial control
- systems and automotive systems. Start looking for
- microcontrollers that have analog comparators, analog
- multiplexers, current sources, voltage doublers, PLL (Phase Lock
- Loops) and all sorts of peripherals that you thought were analog
- only.
-
-
- 4.6) Interrupts
-
-
- Polling
-
- Polling is not really a "feature" - it's what you have to do if
- your microcontroller of choice does not have interrupts.
- Polling is a software technique whereby the controller continually
- asks a peripheral if it needs servicing. The peripheral sets a
- flag when it has data ready for transferring to the controller,
- which the controller notices on its next poll. Several such
- peripherals can be polled in succession, with the controller
- jumping to different software routines, depending on which flags
- have been set.
-
-
- Interrupts
-
- Rather than have the microcontroller continually polling - that
- is, asking peripherals (timers / UARTS / A/Ds / external
- components) whether they have any data available (and finding most
- of the time they do not), a more efficient method is to have the
- peripherals tell the controller when they have data ready. The
- controller can be carrying out its normal function, only
- responding to peripherals when there is data to respond to. On
- receipt of an interrupt, the controller suspends its current
- operation, identifies the interrupting peripheral, then jumps
- (vectors) to the appropriate interrupt service routine.
-
- The advantage of interrupts, compared with polling, is the speed
- of response to external events and reduced software overhead (of
- continually asking peripherals if they have any data ready).
-
- Most microcontrollers have at least one external interrupt, which
- can be edge selectible (rising or falling) or level triggered.
- Both systems (edge/level) have advantages. Edge - is not time
- sensitive, but it is susceptible to gitches. Level - must be held
- high (or low) for a specific duration (which can be a pain - but
- is not susceptible to glitches).
-
- Interrupts are critical when you are controlling anything (this is
- what microcontrollers do). If you misunderstand any of the terms,
- and design your systems with the way you *think* it works - not
- the way it *really* works - it will effect system performance. It
- may also work for a very long time with no problems, and then all
- of a sudden fail. Check your datasheets - these descriptions are
- the correct ones (or are at least supposed to be), but that does
- not mean that they are agreed to by the silicon manufacturers, (or
- by the marketing guys that they employ, and who write parts of the
- data sheets.)
-
- 4 bit microcontrollers usually have either a polling or
- non-vectored type of interrupt scheme. 8 and 16 bit
- microcontrollers usually have some type of vectored arbitration
- type of interrupt scheme. 32 bit microcontrollers usually will
- have some type of vectored priority type of interrupt scheme.
- Again, check your data sheet to make sure - or ask a
- manufacturer's rep if you aren't sure.
-
-
- Maskable Interrupts
-
- A maskable interrupt is one that you can disable or enable
- (masking it out means disabling the interrupt), whereas
- non-maskable interrupts you can't disable. The benefit of
- maskable interrupts is that you can turn off a particular
- interrupts (for example a UART) during some time critical task.
- Then, those particular interrupts will be ignored thus allowing
- the microcontroller to deal with the task at hand. Most
- microcontrollers (as well as most microprocessors) have some type
- of Global Interrupt Enable (GIE) which allows you to turn off (or
- on) all of the maskable interrupts with one bit. NOTE: GIE
- usually does not effect any NMI (Non-Maskable Interrupts)
-
-
- Vectored Interrupts
-
- Simple (non-vectored) interrupts is one of the simplest interrupt
- schemes there is (Simple = less silicon = more software = slower).
- Whenever there is an interrupt, the program counter (PC) branches
- to one specific address. At this address, the system designer
- needs to check the interrupts (one at a time) to see which
- peripheral has caused the interrupt to occur. Code for this may
- look like (on a COP8):
-
- IFBIT UART,PSW ; If the UART bit has been set
- JP UART_Recieve ; Jump to the UART receive service routine
-
- IFBIT T1,PSW ; If the timer has underflowed
- JP Underflow ; Jump to the underflow service routine
-
- ... and so on
-
- This can be *very* slow - and the time between the interrupt
- happening and the time the service routine is entered, depends on
- how the system designer sets up their ranking. The peripheral
- that is checked last takes the longest to process. Most
- microcontrollers that have fewer than 3 - 5 interrupts use this
- method. The benefit of this is that the system designer can set
- the priority - The most important peripheral gets checked first -
- and you get to decide which peripheral that is.
-
- Vectored interrupts are a little easier to set up, but the system
- designer has less control of the system (i.e. is dependent on the
- silicon manufacture to make the proper decisions during design of
- the chip). When an interrupt occurs, the hardware interrupt
- handler automatically branches to a specific address depending on
- what interrupt occurred. This is much faster than the
- non-vectored approach described above, however the system designer
- does not get to decide what peripheral gets checked first.
- Example (on a National Semiconductor COP888CG):
-
- Rank Source Description Vector Address
- ------------------------------------------------------------------
- 1 (highest) Software INTR Instruction 01FE - 01FF
- 2 External Pin G0 Edge 01FA - 01FB
- 3 Timer T0 Underflow 01F8 - 01F9
- 4 Timer T1 T1A / Underflow 01F6 - 01F7
- 5 Timer T1 T1B 01F4 - 01F5
- 6 MICROWIRE/PLUS BUSY Goes Low 01F2 - 01F3
- 7 UART Receive 01EE - 01EF
- 8 UART Transmit 01EC - 01ED
- 9 Timer T2 T2A / Underflow 01EA - 01EB
- 10 Timer T2 T2B 01E8 - 01E9
- 11 Timer T3 T3A / Underflow 01E6 - 01E7
- 12 Timer T3 T3B 01E4 - 01E5
- 13 Port L / MIWU Port L Edge 01E2 - 01E3
- 14 (lowest) Default VIS Interaction 01E0 - 01E1
-
- In ROM location 01F8 - 01F9 (2bytes x 8 bits = 16bit address) the
- system designer enters the ROM location of where they want the
- service routine (of the Timer T0 underflow) to be. And so on for
- the rest of the addresses.
-
-
- Interrupt arbitration and priority
-
- Interrupt arbitration and priority - These are two of the most
- misused words when it comes to microcontrollers (microprocessors
- too for that matter) and it's generally because no one knows the
- difference between them. Priority is not Arbitration.
- Arbitration is not Priority. Lets see if we can sort out the
- differences.
-
- Arbitration - If you look at the above chart of the COP888CG, you
- may think the interrupts are prioritized because they have some
- ranking. They do have rank, but they are not prioritized. What
- happens is that (in an arbitration scheme) when an interrupt
- occurs, the GIE (Global Interrupt Enable) is cleared. This
- effectively means that all future interrupts will be delayed until
- the GIE is set. The GIE becomes set only if the system designer
- sets it in a service routines, or on a RETI (Return from
- Interrupt).
-
- Quick Example 1 - Timer 1 underflows - the hardware clears the
- GIE, looks at ROM locations 01F6 and 01F7 and jumps to the ROM
- location pointed to by those addresses. The program does a couple
- things, and then sets the GIE (because the user wants to recognize
- an external interrupt during this service routine). However while
- in the service routine, Timer 3 underflows. Although a timer 3
- underflow is lower in rank than a timer 1 underflow, the interrupt
- handler does not care - it simply looks at the GIE, and because it
- is set - handles the interrupt (now we have nested interrupts).
- The Timer 1 underflow service routine will not be completed until
- the Timer 3 underflow is complete.
-
- Quick Example 2 - Timer 3 underflows at the same time as an
- External interrupt occur. The one to be handled first is the
- External Interrupt. If the user sets the GIE, the interrupt
- handler will jump down to the Timer 3 underflow handler. If the
- user does not set the GIE, the microcontroller handles the
- External interrupt, does a RETI, and the Timer 3 underflow can now
- be handled.
-
-
- Priority - In a priority scheme, things are prioritized (well,
- what'd you expect?). If Timer T0 underflows, the only thing that
- can interrupt that is an external or software interrupt. If a
- external or software interrupt occurs, the interrupt handler will
- branch to these service routines. When they are complete, it will
- return to the Timer T0 underflow.
-
- Quick Example - In the below timing diagram, the following
- happens:
- 1) Timer T0 underflows
- 2) Timer T2 underflows
- 3) An External Interrupt occurs.
-
-
- In a priority scheme, the following would happen:
-
- External Interrupt |---------|
- | |
- Timer T0 Underflow |-------| |------|
- | |
- Timer T2 Underflow | |------|
- | |
- Normal Execution ---| |-------
-
- ^ ^ ^ ^ ^ ^
- | | | | | |
- Time -> | | | | | \-T2 Done
- | | | | \-------- T0 Done
- | | | \-------------- Ext Done
- | | \------------------------ Ext Edge
- | \----------------------- T2 Underflows
- \--------------------------- T0 Underflows
-
- This is what RTOS (Real Timer Operating Systems) do - prioritize
- and handle interrupts.
-
-
- 4.7) Special microcontroller features
-
-
- Watchdog timer
-
- A watchdog timer provides a means of graceful recovery from a
- system problem. This could be a program that goes into an endless
- loop, or a hardware problem that prevents the program from
- operating correctly. If the program fails to reset the watchdog
- at some predetermined interval, a hardware reset will be
- initiated. The bug may still exist, but at least the system has a
- way to recover. This is especially useful for unattended systems.
-
-
- Digital Signal Processors (DSP)
-
- Microcontrollers react to and control events - DSPs execute
- repetitive math-intensive algorithms. Today many embedded
- applications require both types of processors, and semiconductor
- manufacturers have responded by introducing microcontrollers with
- on-chip DSP capability and DSPs with on-chip microcontrollers.
-
- The most basic thing a DSP will do is a MACC (Multiply and
- ACCumulate). The number of data bits a DSP can Multiply and
- ACCumulate will determine the dynamic range (and therefore the
- application).
-
- Bits Fixed/Floating Dynamic Range Typical Application
-
- 8 Fixed 48 dB Telephone-quality voice
- 16 Fixed 96 dB Compact disk (marginal)
- 24 Fixed 144 dB Compact disk
- (room for error)
-
-
- Clock Monitor
-
- A clock monitor can shut the microcontroller down (by holding the
- microcontroller in reset) if the input clock is too slow. This
- can usually be turned on or off under software control.
-
-
- Resident program loader
-
- Loads a program by Initializing program/data memory from either a
- serial or parallel port. Convenient for prototyping or trying out
- new features, eliminates the erase/burn/program cycle typical with
- EPROMs, and allows convenient updating of a system even from an
- offsite location.
-
-
- Monitor
-
- A monitor is a program installed in the microcontroller which
- provides basic development and debug capabilities. Typical
- capabilities of a microcontroller monitor include: loading object
- files into system RAM, executing programs, examining and modifying
- memory and registers, code disassembly, setting breakpoints, and
- single-stepping through code. Some simple monitors only allow
- basic functions such as memory inspection, and the more
- sophisticated monitors are capable of a full range of debug
- functions.
-
- Monitors can either communicate with a dumb terminal or with a
- host computer such as a PC. Much of the work of the monitor (such
- as user interface) can be offloaded to the host PC running a
- program designed to work with the monitor. This makes it possible
- to reduce the size and complexity of the code that must be
- installed in the target system.
-
-
- MIL transducer
-
- An MIL transducer is a sophisticated and expensive device that
- detects the presence of your mother-in-law. Sensitivity settings
- are possible for a full range of stimuli such as: snarling,
- stomping, nasty faces, and others. Techno-Wimp (address withheld
- upon request), the sole manufacturer of the MIL transducer, has
- recently announced a major new version which is sensitive enough
- to detect less-tangible stimuli. This breakthrough product is
- dubbed the MIL-WOMF ("Whoa, outta my face!") transducer. Both the
- original MIL and the new MIL-WOMF transducers are programmable and
- easy to interface to most microcontrollers.
-
-
- 5) Some popular microcontrollers
-
- Some common microcontrollers are described below. A common question
- is "what microcontroller should I use for...?" Well, that's a tough
- one. The best advice would be to choose a chip that has a full set
- of development tools at the price you can afford, and good
- documentation. For the hobbyist, the Intel 8051, Motorola 68hc11, or
- Microchip PIC would all make suitable choices.
-
-
- 8048 (Intel)
-
- The grandaddy of 'em all, the first microcontroller, it all
- started here! Although a bit long in the tooth and a bit kludgey
- in design (at least by today's standards), it is still very
- popular due to its very low cost, availability, and wide range of
- development tools.
-
- Modified Harvard architecture with program ROM on chip with an
- additional 64 to 256 bytes of RAM also on chip. I/O is mapped in
- its own space.
-
-
- 8051 (Intel and others)
-
- The 8051, Intel's second generation of microcontrollers, rules the
- microcontroller market at the present time. Although featuring a
- somewhat bizarre design, it is a very powerful and easy to program
- chip (once you get used to it).
-
- Modified Harvard architecture with separate address spaces for
- program memory and data memory. The program memory can be up to
- 64K. The lower portion (4K or 8K depending on type) may reside on
- chip. The 8051 can address up to 64K of external data memory, and
- is accessed only by indirect addressing. The 8051 has 128 bytes
- (256 bytes for the 8052) of on-chip RAM, plus a number of special
- function registers (SFRs). I/O is mapped in its own space.
-
- The 8051 features the so-called "boolean processor". This refers
- to the way instructions can single out bits just about anywhere
- (RAM, accumulators, I/O registers, etc.), perform complex bit
- tests and comparisons, and then execute relative jumps based on
- the results.
-
- Piles of software, both commercial and free, are available for the
- 8051 line. Many manufacturers supply what must be a hundred
- different variants of this chip for any requirement. Often
- featured in construction projects in the popular hobbyist
- magazines.
-
-
- 80c196 (MCS-96)
-
- The third generation of Intel microprocessors, the 80c196 is a 16
- bit processor. Originally fabricated in NMOS (8096), it is now
- mainly available in CMOS. Intel Corp. has recently introduced a
- clock-doubled (50MHz) version of the 80c196.
-
- Among the many features it includes are: hardware multiply and
- divide, 6 addressing modes, high speed I/O, A/D, serial
- communications channel, up to 40 I/O ports, 8 source priority
- interrupt controller, PWM generator, and watchdog timer.
-
-
- 80186,80188 (Intel)
-
- These chips are, in essence, microcontroller versions of the 8086
- and 8088 (of IBM/PC fame). Included on the chip are: 2 channels
- of DMA, 2 counter/timers, programmable interrupt controller, and
- dynamic RAM refresh. There are several variations including: low
- power versions, variations with serial ports, and so on.
-
- One major advantage you gain by using one of these parts is that
- you can use standard PC development tools (compilers, assemblers,
- etc) for developing you applications. If you are already familiar
- with PC software development, the learning curve will be short,
- since these chips have the same basic architecture as the original
- 8088 (as used in the IBM/PC).
-
- Other advantages include high speed processing, a full megabyte
- addressing space, and powerful interrupt processing.
-
-
- 80386 EX (Intel)
-
- The 80386 EX is of course a 386 in microcontroller clothing.
- Included on the chip are: serial I/O, power management, DMA,
- counter/timers, programmable interrupt controller, and dynamic RAM
- refresh. And of course, all of the power of the 386
- microprocessor.
-
- One major advantage you gain by using one of these parts is that
- you can use standard PC development tools (compilers, assemblers,
- etc) for developing your applications. If you are already
- familiar with PC software development, the learning curve will be
- short, since these chips have the same basic architecture as the
- original 8088 (as used in the IBM/PC).
-
- We're talking power here gang. Now let's all wait for Microsoft
- to release a version of Windows for embedded and real-time
- applications (Windows ET? Windows RT? Windows 2000? :-).
-
-
- 6805 (Motorola)
-
- The 6805 is based loosely on the manufacturer's earlier 6800, with
- some similarities to the 6502. It has a Von-Neuman architecture
- in which instructions, data, I/O, and timers all share the same
- space. Stack pointer is 5 bits wide which limits the stack to 32
- bytes deep. Some members of this family include on chip A/D, PLL
- frequency synthesizer, serial I/O, and software security.
-
-
- 68hc11 (Motorola and others)
-
- The popular 68hc11 is a powerful 8-bit data, 16-bit address
- microcontroller from Motorola (the sole supplier) with an
- instruction set that is similar to the older 68xx parts (6801,
- 6805, 6809). The 68hc11 has a common memory architecture in which
- instructions, data, I/O, and timers all share the same memory
- space.
-
- Depending on the variety, the 68hc11 has built-in EEPROM/OTPROM,
- RAM, digital I/O, timers, A/D converter, PWM generator, pulse
- accumulator, and synchronous and ansynchronous communications
- channels. Typical current draw is less than 20ma.
-
-
- 683xx (Motorola)
-
- The MC68EC300 series incorporates various peripherals into various
- 68k family core processors. These can be called "integrated
- processors". They are really super-microcontrollers, very high
- performance, capable of high processing speeds, and able to
- address large amounts of memory. A typical example from this line
- would be the 68331. It is based on a 68020-like core and has
- about the same processing power as an Intel 80386.
-
-
- PIC (MicroChip)
-
- While watching my 8 year old daughter play with her Barbie Dolls
- (she has about 7 or so, including two that used to belong to Roz,
- my wife, when she was a girl) I noticed an interesting difference
- between the old dolls and the new dolls. The old Barbies could
- only move their heads sideways, while the new Barbies not only can
- move their heads sideways, but also up and down. AMAZING - the
- old Barbies were good girls - they could only say no. The new
- Barbies however can also say yes. Progress - isn't it wonderful!
- (Not to mention the gymnast Barbie that Dave Perry's daughter got
- for Christmas - "wait'll you see what *she* can do ;-)"
-
- Which leads me to an amazing fact. Most everyone thinks of the
- PIC microcontroller line as being a recent introduction. However,
- they've been popular for over 20 years. What's the difference?
- Microchip (which was originally [owned by] General Instruments),
- seems to have recreated this microcontroller into a product
- universally regarded as a powerful and cost effective solution.
- The new chips are fabricated in CMOS, some features have been
- added, and new family lines have been introduced.
-
- The PIC microcontrollers were the first RISC microcontrollers.
- RISC generally implies that simplicity of design allows more
- features to be added at lower cost, and the PIC line is no
- exception. Although having few instructions (eg. 33 instructions
- for the 16C5X line versus over 90 for the Intel 8048), the PIC
- line has a wealth of features included as part of the chip.
- Separate buses for instructions and data (Harvard architecture)
- allows simultaneous access of program and data, and overlapping of
- some operations for increased processing performance. The
- benefits of design simplicity are a very small chip, small pin
- count, and very low power consumption.
-
- PIC microcontrollers are rapidly gaining in popularity. They are
- being featured more and more often in construction projects in
- popular hobbyist magazines, and are chalking up a good number of
- design wins. Due to their low cost, small size, and low power
- consumption, these microcontrollers can now be used in areas that
- previously wouldn't have been appropriate (such as logic
- circuits). They are currently available in three lines: the
- PIC16C5x, PIC16Cxx, and PIC17Cxx families.
-
- PSST! Hey kid! Want a naked Barbie Doll?!
-
-
- COP400 Family (National Semiconductor)
-
- The COP400 Family is a P2CMOS 4-bit microcontroller which offers
- 512 bytes to 2K ROM and 32x4 to 160x4 RAM. Packages are varied
- from 20 to 28 pin (DIP/SO/PLCC). Functions include Microwire,
- timers counters, 2.3 to 6.0 Volt operation, ROMless modes, and OTP
- support.
-
- Far from being "old" technology - 4-bit microcontrollers are
- meeting significant market needs in more applications than ever
- before. The reason for the continuing strength of the COP400
- family is its versatility. Over 60 different, compatible devices
- are available for a wide range of requirements. The first under
- $.50 microcontroller set a new standard of value for
- cost/performance.
-
-
- COP800 Family (National Semiconductor)
-
- The COP800 Basic Family is a fully static 8-bit microcontroller,
- fabricated using double metal silicon gate microCMOS technology.
- This low cost microcontroller contains all system timing,
- interrupt logic, ROM, RAM, and I/O necessary to implement
- dedicated control functions in a variety of applications.
-
- Depending on the device, features include: 8-bit memory mapped
- architect, MICROWIRE serial I/O, UART, memory mapped I/O, many 16
- bit timer/counters with capture registers, a multi-sourced
- vectored interrupt, comparator, WATCHDOG Timer and Clock monitor,
- Modulator/Timer (high speed PWM timer for IR transmission),
- 8-channel A/D converter with prescaler and both differential and
- single-ended modes, brownout protection, halt mode, idle mode,
- high current I/O pins with 15mA sink capability, Schmitt trigger
- inputs and Multi-Input-Wake-Up. Most devices operate over a
- voltage range from 2.5V to 6V.
-
- High throughput is achieved with an efficient, powerful
- instruction set operating at a 1uS per instruction rate (most
- instructions are single byte/single cycle) including true bit
- manipulation and BCD arithmetic instructions. Most devices have
- military versions for -55C to +125C.
-
-
- HPC Family (National Semiconductor)
-
- The HPC Family of High Performance microControllers is a 16-bit
- controller fabricated using National's advanced microCMOS
- technology. This process combined with an advanced architecture
- provides fast, flexible I/O control, efficient data manipulation,
- and high speed computation.
-
- With its 16x16 bit multiply and 32x16 bit divide, the HPC is
- appropriate for compute-intensive environments that used to be the
- sole domain of the microprocessor. The architecture is a
- Von-Neuman architecture where the program and data memory share
- the same address space.
-
- Depending on the family member, features include: 16-bit
- memory-mapped architecture with software configurable external
- address/data bus, Microwire/Plus serial I/O, UART, 16-bit
- timer/counters with input capture capability, High-Level Data Link
- Control (HDLC) for ISO-standard data communications, 8-channel A/D
- converter with prescaler and both differential and single-ended
- modes, power-saving modes, Multiply/Accumulate Unit with built-in
- circular buffer management for low to medium DSP applications,
- software configurable chip-select outputs, 64KB address space
- directly addressable, low-voltage (3.3V) operation.
-
- High throughput is achieved with an efficient, powerful
- instruction set operating at a 50ns per instruction cycle (most
- instructions are single byte/single cycle) including true bit
- manipulation. Key applications currently using the HPC family
- include: Anti-lock Braking Systems, Hard Disk drives for mass
- storage, telecommunications, security systems, laser printers, and
- some military applications.
-
-
- Project Piranha (National Semiconductor)
-
- Project Piranha is an internal code name for National
- Semiconductor's embedded RISC processor technology. The Piranha
- technology represents the first RISC processor specifically
- designed for the needs of embedded applications. This was
- accomplished through examination of the needs of typical embedded
- applications, resulting in a technology which maintains the
- benefits of CISC while providing the performance of RISC.
-
- Specifically, some of these benefits are:
- compact code density --> smaller memory usage/
- lower system cost
- small core size --> more room for add-on system design
- scalable architecture --> a range of performance solutions
- from 8 to 64 bits with a common architecture
- common instruction set --> you only face the learning curve
- and development tools once
- modular design --> designed for easy integration of
- specialized functions into
- single chip
-
- This technology is initially being implemented in application
- specific products from National Semiconductor, with the first
- product being available in Q1, 1995. For further information on
- this technology, please contact Mark Throndson at
- tmetsc@esd.nsc.com, or (408) 721-4957.
-
-
- Z8 (Zilog)
-
- A "loose" derivative of the Zilog Z80, the Z8 is actually a
- composite of several different achitectures. Not really
- compatible with the Z80 peripherals. Has a unique architecture
- with three memory spaces: program memory, data memory, and a CPU
- register file. On-chip features include UART, timers, DMA, up to
- 40 I/O lines. Some versions include a synchronous/asynchronous
- serial channel. Features fast interrupt response with 37
- interrupt sources. The Z8671 has Tiny Basic in ROM. The Super-8
- is just that, a super version of the Z8 with more of everything.
-
-
- HD64180 (Hitachi)
-
- A powerful microcontroller with full Z80 functionality plus:
- extended memory management, two DMA channels, synchronous and
- asynchronous communications channels, timers, and interrupt
- controller. Some versions of this chip also include EPROM, RAM,
- and PIO (programmable input/output). It runs Z80 code in fewer
- clock cycles than the Z80 and adds in hardware multiply and a few
- other instructions. Available in versions that run up to 18MHz.
-
-
- TMS370 (Texas Instruments)
-
- It is similar to the 8051 in having 256 registers, A and B
- accumulators, stack in the register page, etc. It also has a
- host of onboard support devices, some members have all of them
- while others have a subset, the peripherals include: RAM, ROM
- (mask, OTP, or EEPROM), 2 timers (configurable as timers/
- counters/comparators/PWM output), watchdog timer, SCI (syncronous
- serial port), SPI (asynchronous serial port), A/D (8 bit, 8
- channel), interrupts.
-
- Instruction set is mostly 8 bit with some 16 bit support. Has
- several addressing modes, 8x8 multiply, 16/8 divide. Clock speeds
- are up to 20MHz which gives 5MHz for buss access and instruction
- cycles. Pins mostly TTL compatible (except clock and reset).
-
- Packages include:
- 28,40 DIP
- 28 CLCC
- 28,44,68 PLCC
- 40,64 SDIP
-
- A developers/proto board is available. It is a multi layer PCB
- about 12"x7" with RS-232 serial I/O, and monitor as well as access
- to all processor pins on a patch and proto area. Support software
- includes IBM-PC monitor & loader, cross assembler (absolute only).
- A pure serial TTY monitor is also supported. Sole power
- requirement is +5v. Priced is about $500 or so.
-
- A relocating assembler and linker, and a C compiler are also
- available.
-
-
- 1802 (RCA)
-
- This is a real old-timer. The 1802 is the successor to the 1801
- (2 chip set) which was the first microprocessor implemented in
- CMOS. Both products were called microprocessors by RCA, not
- microcontrollers. However, since the 1801 was implemented in CMOS
- and therefore had low power requirements, it was often used in
- microcontroller applications. The 1802, with its higher level of
- integration and ease of use, could actually be considered a true
- microcontroller. The 1802 is radiation hard and used in a lot of
- deep space and satellite applications.
-
- The 1802 has a fairly clean instruction set, a bunch of
- general-purpose registers (more like a Z80 than an 8051 in that
- regard), and separate data and I/O address spaces.
-
-
- MuP21 (Forth chip)
-
- The MuP21 was designed by Chuck Moore, the inventor of Forth.
- With the MuP21, Forth can compile into machine code and still be
- Forth, because the machine code IS Forth. The MuP21 freaks out at
- 100 MIPS while consuming only 50 milliwatts. Not only that, the
- chip includes a video generator, has only about 7000 transistors
- (that's right, 7000 and not 7,000,000), and costs about $20.
-
- The assembler on this chip is a sort of dialect of Forth, as the
- CPU is modeled after the Forth virtual machine. MuP21 is a
- MINIMAL Forth engine. In fact MuP21 was designed to run OKAD
- (Chuck Moore's VLSI CAD softare), and OKAD was designed to run on
- MuP21. OKAD was run on a 486 to design MuP21, and MuP21 was
- designed to have just enough hardware to run OKAD about ten times
- as fast as a 486 on a very cheap chip (the MuP21). That's the
- reason for the MuP21's on-chip video generator coprocessor. The
- CPU programs the video generator and then just manipulates the
- video buffer. It is composite video out, so it only needs one
- pin. MuP21 is only a 40 pin chip.
-
- MuP21 chips, boards, software, manuals, and spec sheets are
- available from:
- Offete Enterprises
- 1306 South B Street, San Mateo CA 94402
- (415) 574-8250
- Email: Chen_Ting@umacmail.apldbio.com
-
-
- F21 (Next generation Forth chip)
-
- F21 will be bigger (10k vs 7k transistors for the MuP21!) but
- since it is going to implemented with a smaller geometry (.8
- micron vs 1.2) it will still be extremely small and low power, and
- low cost. Although the specs on this chip aren't final yet,
- expected performance is in the range of 250 MIPS!!. It will have
- multiple analog processors and a very high speed serial network
- coprocessor on chip. F21 will also support a wider range of
- memory chips and have more I/O processors.
-
- Designed for cheap consumer multimedia and parallel processing,
- the F21 is planned for release some time in 1995.
-
- For more information on this project, contact: Jeff Fox
- <jfox@netcom.com>.
-
-
- 6) GETTING STARTED WITH MICROCONTROLLERS
-
- In order to get started with microcontrollers, several factors need
- to be considered.
- - cost
- - convenience
- - availability of development tools
- - intended use
-
- The hardware described in this section is readily available,
- affordable, and is easy to find software for.
-
- <Inclusion or exclusion of a product in this section doesn't have any
- real significance. I've tried to give a good cross-section of
- devices and manufacturers - I'm open for suggestions.>
-
-
- 6.1) Evaluation Kits/Boards
-
- Many manufacturers offer assembled evaluation kits or boards which
- usually allow you to use a PC as a host development system. Among
- some of the more popular evaluations kits/boards are:
-
- Parallax Basic Stamp
- This is a small single-board controller that runs BASIC, and costs
- only $39. A SIP version for only $29 is also available. THE 256
- byte EEPROM can hold a program of up to about 100 instructions.
- The BASIC Stamp Programming Package is a complete development
- package for only $99.
- Parallax, Inc., 3805 Atherton Rd. 102, Rocklin, CA 95765
- (916)624-8333 Fax: (916)624-8003 BBS: (916)624-7101
- email: info@parallaxinc.com
-
- Motorola EVBU, EVB, EVM, EVS
- A series of very popular evaluation/development systems. Comes
- complete with the BUFFALO monitor and varying types of development
- software. Commonly used for university courses.
-
- Dallas Semiconductor DS5000TK
- The DS5000TK allows evaluation of any DS5000 series device in any
- existing application without circuit changes. The included
- DS5000T plugs into the supplied serial interface pod which
- provides a connection to a host PC. A target cable connects the
- pod to the target system. Programs can be downloaded directly to
- the chip (no EPROM programming!) using the built-in serial loader.
- (With Dunfield's Development System, you end up with a cheap
- "pseudo-ice". Dunfield also has a circuit if you want to build a
- similar device.)
-
- Philips DS750
- For $100, you get a "pseudo-ice" for testing your code in-circuit.
- Based on the low-end Philips 87c75x parts. Allows source-code
- debugging in assembler (included), C, and PL/M. Very popular with
- students and consultants to experiment with 80c51 code for their
- application. Includes a VERY NICE book which describes the theory
- of operation of the board itself, and includes a good number of
- experiments that you can try for yourself. Philips sold nearly
- 10,000 of these boards in the USA (and 5000 in Europe without even
- advertising).
-
- National Semiconductor's EPU
- The COP8780 Evaluation / Programming Unit (EPU) offers designers a
- low-cost ($125) tool for an introduction to National's COP8 Basic
- Family of 8-bit microcontrollers. This development tool gives you
- an inexpensive way to benchmark and evaluate microcontroller code
- in realtime. With its built in MIRCOWIRE/PLUS interface, it can
- interface to numerous MICROWIRE/PLUS devices such as EPROMS,
- EEPROMS, D/As, A/Ds, DASs, and others, to give a full featured
- system. The system includes the EPU board, assembler and debugger
- software, sample code, very limited C compiler, wall power supply,
- documentation, and a really great box :-).
-
-
- 6.2) Easy chips to use
-
- In addition, several chips provide a similar capability if you are
- willing to spend a bit of time wiring up a simple circuit. A few
- chips worth looking at are:
-
- Motorola MC68HC11A8P1
- Contains Motorola's BUFFALO monitor which has the same
- functionality as the one on Motorola's evaluation boards. A
- working system can be built with this chip and a Maxim MAX-232.
- You can talk to it with a PC or Mac over a 3-wire RS232
- connection. It is easy to load and run anything you want in the
- on-board RAM and EEPROM. You can even use subprograms in the
- BUFFALO monitor after getting a listing from Motorola's BBS or ftp
- site. This BBS/ftp site also has freeware assemblers to make a
- complete development environment cheaply and quickly.
-
- Intel 8052AH-BASIC
- This popular chip with hobbyists is another easy way to get
- started. You can download high level code from your host. The
- disadvantages are that you can't get away from a multi-chip
- solution, the code is noticeably slow, you have to buy an MCS
- BASIC manual, you are detached from the inner workings, there
- aren't many on-chip goodies like A/D, and you can forget about
- running off of a battery.
-
- Dallas Semiconductor DS5000/DS2250
- These are well suited even for electronics ignoramuses (ignorami?)
- such as myself. All you need to add is a crystal and two
- capacitors to end up with a working system. These chips come
- complete with non-volatile RAM in the form of static RAM (at least
- 8K) backed up with a lithium battery. Everything is saved -
- program, data, and bugs ;-).
-
- MicroChip PIC '5x series
- With only 33 instructions, this chip is definitely easy to use!
- Using Parallax's assembler, the instruction set is ** MUCH ** less
- intimidating than MicroChip's opcodes! These chips simply need
- power, ground, and 1 of 4 different timing circuits. Doesn't get
- much easier than that! With I/O pins that are beefy (25mA per pin
- sink, 20mA per pin source) and drive both high and low,
- interfacing is super easy. It's great to hook LEDs and such
- directly to output pins with only a resister in-line!
-
-
- 6.3) Software (Cheap and easy)
-
- You can search for free software for development, but you often get
- what you pay for. What is sorely lacking in freeware is technical
- support. Several packages are available that provide complete
- development environments for some of the more popular
- microcontrollers. If you want to be productive right away, think
- about investing $100 or so - it'll be well worth the price!
-
-
- I've been playing with the Dunfield Development System lately (on the
- 8051), and it's really quite nice. I've also heard many good things
- about it from others. It includes a near ANSI-C compiler, run-time
- library with source, assembler, ROM debugger, integrated development
- environment, monitor with source, utilities, and other extras.
- Although not freeware, the low price ($100), the features, all of the
- extra goodies, and the good reviews make this a package worth looking
- at. Also, if you're interested in working on more than one family of
- microcontroller, Dunfield supports a wide range. This means only
- needing to learn one system, instead of many. The following chips
- are supported: 6805, 6809, 68hc11, 68hc16, 8051/52, 8080/85, 8086,
- and 8096. A package including a simulator and a resident monitor
- debugger are also available for the 8051 for $50.
- Dunfield Development Systems
- P.O. Box 31044, Nepean, Ontario K2B 8S8 Canada
- (613)256-5820 Fax: (613)256-5821
- Email: ddunfield@bix.com
-
-
- A decent C compiler for the 68hc11 comes from ImageCraft. This
- package, which runs under DOS and OS/2, includes a near ANSI C
- compiler, assembler, linker, librarian, ANSI C functions and headers,
- and 90 page manual. The current release is version 1.02 of their
- compiler. The price is just $40. Initial feedback on this compiler
- seems promising. The pre-release versions are already in use by many
- of you, and will still be available as freeware.
- ImageCraft
- P.O. Box 64226, Sunnyvale, CA 94086-9991
- (Richard Man) imagecft@netcom.com
-
-
- Another low priced ($100) C compiler comes from Micro Computer
- Control. Cross compilers running under DOS are available for the
- 8051 and the Z8 (including Super-8). This package includes a C
- compiler, assembler, linker, librarian, and extensive printed
- documentation. A simulator/source code debugger is available for an
- additional $79.95.
- Micro Computer Control Corporation
- PO Box 275, 17 Model Ave., Hopewell, NJ 08525
- (609)466-1751 Fax: (609)466-4116 BBS: (609)466-4117
- Email: 73062.3336@compuserve.com
-
-
- C isn't the only development system available (yeah, I know that's
- hard to believe) - good solid Basic and Forth development systems are
- also available. Refer to the appropriate FAQ for the microcontroller
- that you are using for more information on free and commercial
- development systems.
-
-
- If the Microchip PIC is your game, then check out the Parallax tools
- (available on their ftp and web sites). All Parallax software is
- available free of charge to all takers! This includes PSIM (a PIC
- simulator), PASM (an assembler for '5x parts), and PASMX (an
- assembler for 'xx parts). These are the full commercial versions,
- not hobbled in any way!
-
-
- 7) MICROCONTROLLER PROGRAMMING LANGUAGES
-
- Just a bit of an introduction for the beginner.
-
-
- 7.1) Machine/Assembly language
-
- Machine language is the program representation as the microcontroller
- understands it. It is not easy for humans to read and is a common
- cause of migraine headaches. Assembly language is a human-readable
- form of machine language which makes it much easier for us flesh and
- bone types to deal with. Each assembly language statement
- corresponds to one machine language statement (not counting macros).
-
- An assembly/machine language program is fast and small. This is
- because you are in complete charge of what goes into the program. Of
- course, if you write a slow, large, stupid program, then it will run
- slowly, be too big, and be stupid. Assembly language (assembler)
- can't correct stupidity - although sometimes I wish it could ;-).
-
- If you are starting out learning about microcontrollers, it would be
- worth your while first learning assembler. By programming in
- assembler, you master the underlying architecture of the chip, which
- is important if you intend to do anything significant with your
- microcontroller.
-
-
- 7.2) Interpreters
-
- An interpreter is a high level language translator that is closer to
- natural language. The interpreter itself is a program that sits
- resident in the microcontroller. It executes a program by reading
- each language statement one at a time and then doing what the
- statement says to do. The two most popular interpreters for
- microcontrollers are BASIC and FORTH.
-
- BASIC's popularity is due to its simplicity, readability, and of
- course just about everyone has at least played with BASIC at one time
- or another. One common compaint about [interpreted] BASIC is that it
- is slow. Often this can be solved by using a different technique for
- performing the desired task. Other times it is just the price paid
- for using an interpreter.
-
- FORTH has a very loyal following due to its speed (approaching that
- of assembler language) and its incremental approach to building a
- system from reusable parts. Many FORTH systems come with a host
- system which turns your desktop computer into a development system.
- FORTH can be quite difficult to write in (if you have no experience
- with it) and is probably even harder to read. However, it is a very
- useful and productive language for control systems and robotics, and
- can be mastered in time.
-
- The nicest thing about developing a system with an interpreter is
- that you can build your program interactively. You first write a
- small piece of code and then you can try it out immediately to see
- how it works. When the results are satisfactory, you can then add
- additional components until the final product is achieved.
-
-
- 7.3) Compilers
-
- A compiler is a high level language translator that combines the
- programming ease of an interpreter with greater speed. This is
- accomplished by translating the program (on a host machine such as a
- desktop PC) directly into machine language. The machine language
- program is then burned onto an EPROM or downloaded directly to the
- microcontroller.
- The microcontroller then executes the translated program directly,
- without having to interpret first.
-
- The most popular microcontroller compilers are C and BASIC. PL/M,
- from Intel, also has some popular support due to that company's
- extensive use of that language.
-
- Due to both its popularity and its slow speed, it was only logical
- that BASIC would appear as a compiled language. A few companies
- supply a BASIC compiler for several of the more popular
- microcontrollers. Execution speed is drastically increased over
- interpreted BASIC since the microcontroller is freed from the task of
- interpreting the statements as the program runs.
-
- While interpreted Forth approaches (and sometimes surpasses) the
- speed of many compilers, compiled Forth screams along. Today there
- are many high performance optimizing native code Forth compilers, and
- there are also lots of very cheap or free public domain Forths. Some
- of them like Tom Almy's ForthCMP produces optimized native code with
- less overhead and better performance than just about anything else
- out there. Of course it still has compactness and more elegant
- factoring of functionality than in most languages.
-
- C is now the language of choice for the entire universe. C is used
- on computers from the tiny microcontroller up to the largest Cray
- supercomputer. Although a C program can be a bit tedious at times to
- read (due to the terse programming style followed by many C
- programmers), it is a powerful and flexible development tool.
- Although a high level language, it also gives the developer access to
- the underlying machine. There are several very good and cheap C
- compilers available for the more popular microcontrollers. It is
- widely used, available, supported, and produces fairly efficient code
- (fast and compact).
-
-
- 7.4) Fuzzy Logic and Neural Networks
-
- Fuzzy Logic and neural networks are two design methods that are
- coming into favor in embedded systems. The two methods are very
- different from each other, from conception to implementation.
- However, the advantages and disadvantages of the two can complement
- each other.
-
- The advantage of neural networks is that it is possible to design
- them without completely understanding the underlying logical rules by
- which they operate. The neural network designer applies a set of
- inputs to the network and "trains" it to produce the required output.
- The inputs must represent the behavior of the system that is being
- programmed, and the outputs should match the desired result within
- some margin of error. If the network's output does not agree with
- the desired result, the structure of the neural network is altered
- until it does. After training it is assumed that the network will
- also produce the desired output, or something close to it, when it is
- presented with new and unknown data.
-
- In contrast, a fuzzy-logic system can be precisely described. Before
- a fuzzy control system is designed, its desired logical operation
- must be analyzed and translated into fuzzy-logic rules. This is the
- step where neural networks technology can be helpful to the
- fuzzy-logic designer. The designer can first train a software neural
- network to produce the desired output from a given set of inputs and
- outputs and then use a software tool to extract the underlying rules
- from the neural network. The extracted rules are translated into
- fuzzy-logic rules.
-
- Fuzzy logic is not a complete design solution. It supplements rather
- than replaces traditional event control and PID (proportional,
- integral, and derivate) control techniques. Fuzzy logic relies on
- grade of membership and artifical intelligence techniques. It works
- best when it is applied to non-linear systems with many inputs that
- cannot be easily expressed in either mathematical equations used for
- PID control or IF-THEN statements used for event control.
-
- In an effort to change fuzzy logic from a "buzzword" (as it is in
- most parts of the world) to a well established design method (as it
- is in Japan), most manufacturers of microcontrollers have introduced
- fuzzy logic software. Most software generates code for specific
- microcontrollers, while other generates C code which can be compiled
- for any microcontroller.
-
-
- 8) DEVELOPMENT TOOLS
-
- Having a programming language is usually not enough to develop a
- program for a microcontroller. Some way of debugging your program is
- needed. I am only too painfully aware of this fact.
-
-
- 8.1) Simulators
-
- A simulator runs your microcontroller program on a host machine (such
- as your PC). You can step through the code to see exactly what is
- happening as the program runs. Contents of registers or variables
- can be altered to change the way the program runs. Eliminates (or at
- least delays) the erase/burn/program EPROM cycle common in
- microcontroller program development. You can work out ideas or learn
- about microcontrollers by experimenting with small code fragments and
- watching on the screen what happens. A simulator can't support real
- interrupts or devices, and usually runs much slower than the real
- device the program is intended for.
-
- Some manufacturers have a cross between a software simulator and the
- hardware emulator - a hardware simulator. This is a piece of
- equipment that plugs into your target, and the pins will toggle and
- react like they should - just MUCH slower. Cost of a device like
- this is only about $100. Two such boards by National Semiconductor
- and Philips are detailed in section 6.2.
-
-
- 8.2) Resident Debuggers
-
- A resident debugger runs your program on the microcontroller itself,
- while showing the progress on your host machine (such as a PC). Has
- many of the same advantages as simulator above, with the additional
- benefit of seeing how the program runs on the real target machine. A
- resident debugger needs to "steal" some resources from the target
- machine, including: a communications port to communicate with the
- host, an interrupt to handle single stepping, and a certain amount of
- memory for the resident part (on the target) of the debugger.
-
-
- 8.3) Emulators
-
- If you've got the money, this is the equipment you want to develop
- your system with (yeah, that's right, a preposition at the end of a
- sentence!). A [usually] expensive piece of hardware that even for
- the cheaper versions will run you at least $700. An emulator is a
- sophisticated device that pretends that it is the microprocessor
- itself, while at the same time capturing information. It provides
- full and total control over your target, while at the same time not
- requiring any resources from the target. The emulator can either be
- a stand alone device with its own display, or it can be interface to
- a PC.
-
-
- 8.4) Good Stereo System
-
- This is the most important tool for the microcontroller developer, or
- for any computer system developer for that matter. Don't expect to
- get anywhere unless you have the proper music playing in the
- background(?) at the proper volume. I find that I do my best work
- with the Rolling Stones (especially Goats Head Soup) or Clapton
- (especially early stuff like Cream - Disraeli Gears is a killer
- album!). The volume must be set to cause excrutiating pain to be
- most effective. Trust me on this ;-).
-
- Tom Mornini of Parallax reports: "Johnny Cash also has a certain
- effectiveness, as well as the Beatles, Aerosmith, and Rush! 60's
- rock and British invasion bands in particular seem to have a
- particularly productive effect."
-
- This would be an interesting topic for an in-depth study.
- Particularly intriguing, is if certain types of music work better
- with specific [families of] processors. Another question in need of
- study would be if it's really true that the smaller the chip (in
- bits), the louder the music needs to be.
-
-
- 9) FINDING OUT MORE ABOUT MICROCONTROLLERS
-
- If you are interested in learning more about microcontrollers, there
- are many fine sources of information. You have your choice of
- printed media (books, periodicals, informative graffiti) or
- interactive (right here on the Internet, or BBSs).
-
-
- 9.1) Books
-
- 8-bit Microcontroller Instruction Set Performance
- - Digitial Systems Consulting / June 1994
- - compares Motorola's M68HC05, Intel's 80x51,
- Microchip's PIC16C5x, and National's COP8
- - lit number 630008
- - (800)272-9959 call this number for copies
-
- The 16 bit 8096: Programming, Interfacing, Applications
- - Ron Katz and Howard Boyet
- - Microprocessor Training Inc
- 14 East 8th Street, New York, NY 10003
- 212-473-4947
- - Library of Congress Catalog card number: 85-61954
- - According to William Chernoff: "The book is pretty good -
- mostly software examples. The one hardware thing I looked
- closely at was wrong - a schematic error. Oh well."
-
- The 68hc11 Microcontroller
- - Joseph D. Greenfield (at R.I.T.)
- - Saunders College Publishing, (Harcourt Brace Jovanovich)
- - 1992
- - ISBN 0-03-051588-2
- - A number of the sections make use of the Buffalo monitor.
- This could be useful if you are using the Motorola Trainer EVB.
-
- The 8051 Family of Microcontrollers
- -Richard H. Barnett
- -Prentice-Hall, 1995 (yeah, that's right, 1995!)
- -ISBN 0-02-306281-9
-
- 8051 Interfacing and Applications
- - Applied Logic Engineering
- 13008 93rd Place North, Maple Grove, MN 55369
- - (612)494-3704
-
- The 8051 Microcontroller
- - I. Scott MacKenzie
- - Macmillan Publishing Company, 1992
- - includes schematics for a single-board computer,
- assembly-language source code for a monitor program, and
- interfaces to a keypad, LEDs, and loudspeaker.
-
- The 8051 Microcontroller
- - James W. Stewart
- - Regents/Prentice-Hall, 1993
- - $27.50, 273 pages
- - includes many interfacing examples (switches, solenoids,
- relays, shaft encoders, displays, motors, and A/D converters)
- and a chapter on top-down design method
-
- The 8051 Microcontroller: Architecture, Programming and Applications
- - Kenneth J. Ayala
- - 241 pages, soft cover
- - 5.25" diskette with assembler and simulator
- - ISBN 0-314-77278-2, Dewey 004.165-dc20
- - West Publishing Company
- P.O. Box 64526, St. Paul, MN 55164
- (800)328-9352
- - see review in next section
-
- The Art of Programming Embedded Systems
- - Jack G. Ganssle
- - 1992, 279pp, $55.00
- - ISBN: 0-12-274880-0
- - CONTENTS: Introduction, Initial Considerations. Elegant
- Structures. Designs for Debugging. Design for Test. Memory
- Management. Approximations. Interrupt Mamangement. Real-Time
- Operating Systems. Signal Sampling and Smoothing. A Final
- Perspective. Appendixes: Magazines, File Format. Serial
- Communications. Bibliography. Index.
-
- Assembly Language Programming (for the MCS-51 family)
- - F. A. Lyn
- - L. S. Electronic Systems Design
-
- Basic-52 Programmer's Guide
- - Systronix, Inc. (they also sell a Basic compiler)
- - address above
-
- Beginner's Guide
- - Suncoast Technologies
-
- A Beginners Guide to the Microchip PIC
- - Nigel Gardner
- - Character Press, Ltd. (UK)
- - ISBN 1 899013 00 8
- - software (on floppy) and hardware guide, debugging techniques
- - suitably titled, for those with no previous microcontroller
- experience
- - 19.95 UK Pounds
-
- The PIC Source Book:
- - assembly language source code on diskette
- - $39
- - Scott Edwards Electronics
- 964 Cactus Wren Lane, Sierra Vista, AZ 85635
- (602)459-4802 Fax: (602)459-0623
- 72037.2612@compuserve.com
-
- C and the 8051
- - Thomas W. Schultz
- - Prentice Hall
- - ISBN 0-13-753815-4
-
- Data Acquisition and Process Control with the M68HC11 Microcontroller
- - Frederick Driscoll, Robert Coughlin, Robert Villanucci of
- Wentworth Institute of Technology.
- - Macmillan Publishing Company
- - 1994
- - ISBN 0-02-33055-X
- - Several Chapters on the 68HC11, instructions, and EVB;
- chapters on interfacing Analog and Digital signals to the
- 68HC11; example applications of interfaces to temperature,
- load cell, pressure and thermocouple sensors.
- - a good companion to Motorola's "pink" books
-
- Data book / Handbook / Users' Guide
- - Advanced Micro Devices
- - Dallas (User's guide for the DS5000)
- - Intel
- - Siemens
-
- Design with Microcontrollers
- - John B. Peatman
- - ISBN 0-07-049238-7
- - This book is on a more advanced level. Uses both the 68hc11
- and Intel 8096 as example systems.
- - Used for a very popular course on microcontroller design at
- Georgia Tech.
-
- Embedded Controller Forth for the 8051 Family
- - Academic Press
- - William H. Payne
- - uses a Forth development system available on the Internet
-
- Embedded Controllers Databook 1992 Edition
- - National Semiconductor Corporation
- - literature number: 400049
- - (800)272-9959 call this number for for copies
-
- Embedded Systems Programming in C and Assembler
- - John Forrest Brown
- - Van Nostrand Reinhold, 1994
- - 304 pages, $49.95
- - ISBN 0-442-01817-7
- - covers Motorola and Intel processors
- - includes diskette with code from the book
- - book review in Dr. Dobb's Journal, November 1994, page 121
-
- Experimenter's guide
- - Rigel Corporation
-
- Introduction to Microcontroller Design, Based on the 8051 family of
- Processors
- - Business Data Computers
- P.O. Box 1549, Chester, CA 96020
-
- M68hc11 Reference Manual
- - Motorola - literature reference M68HC11RM/AD
- - This document is the "bible" of the 6811 and is a must-have
- for any serious 6811 programmer.
-
- MC68hc811E2 Programming Reference Guide
- - Motorola - literature reference M68HC811E2RG
- - A pocket-sized guide to the version of the 6811 used on the
- Mini Board
-
- The Microcontroller Idea Book
- - Jan Axelson (of Microcomputer Journal fame)
- - features the 8052-BASIC microcontroller
- - hands-on guide with complete plans (schematics, design theory,
- program listings, construction details, etc)
- - explains how to use sensors, relays, displays, clock/calendars,
- keypads, wireless links, and more
- - 1994, 273 pages, $31.95 + shipping
- - Lakeview Research, 2209 Winnebago St., Madison, WI 53704
- (608)241-5824 Internet: 71163.3555@compuserve.com
- - contact the author at janaxel@aol.com
-
- Microcomputer Engineering
- - Gene H. Miller
- - Prentice Hall, Englewood Cliffs, NJ 07632
- - 1993
- - ISBN 0-13-584475-4
- - Explains the basics. Many clear and concise assembly language
- example programs.
- - Written to be used with the Motorola Trainer (EVB).
-
- Microcontroller Technology, The 68hc11
- - Peter Spasov
- - Prentice Hall
- - ISBN 0-13-583568-2
-
- Microcontrollers: Architecture, Implementation, and Programming
- - Kenneth Hintz and Daniel Tabak
- - McGraw-Hill Inc. 1992
- - ISBN 0-07-028977-8
-
- PIC 16Cxx Development Tools instructions manuals
- - Parallax, Inc.
- - Instruction manual for the Parallax PIC assemblers
- - Instruction manual for the Parallax Software Simulator
- - Instruction manual for the Parallax PIC programmer hardware
- - Details the Parallax PIC instruction set
-
- PIC 16Cxx Applications Handbook
- - Parallax, Inc.
- - Contains condensed data sheets for '5x, '64, '71, and '84
- controllers
- - Contains 14 application notes showing circuits and code for
- common projects using the PIC series of microcontrollers.
-
- Posix.4: Programming for the Real World
- - Bill O. Gallmeister
- - O'Reilly and Associates, 1995
- - ISBN 1-56592-074-0
- - Part I of the book describes the Posix standard (what it is,
- what it isn't, and what it's for), and explains the principles
- of real time programming (tasking, messages, scheduling, I/O,
- and performance) and why Unix isn't fit for real-time
- programming. Part II is a reference on the Posix functions and
- header files. Part III contains much of the code for the
- exercises in the book.
-
- Programmer's Guide to the 1802
- - Tom Swan
- - Hayden Book Company, Inc., 1981
- - ISBN 0-8104-5183-2
- - good introduction to assembly language progamming and an
- thorough tutorial on the 1802
-
- Programming Microcontrollers in C
- - Ted Van Sickle
- - HighText Publications, 1994
- - 394 pages, $29.95
- - ISBN 1-878707-14-0
- - thorough tutorial on C programming, covers aspects of C
- programming specific to embedded systems
- - covers the Motorola line of microcontrollers (small to large)
- - book review in Dr. Dobb's Journal, November 1994, page 121
-
- The Real-Time Kernel
- - Jean Labrosse
- - R&D Publications, Inc.
- Suite 200 1601 W 23rd St., Lawrence, KS 66046
- - (913)841-1631 Fax: (913)841-2624
- - Based on the article "A Portable Real Time Kernel in C"
- in Embedded Systems Programming (Part 1: vol 5 no 5
- May 1992, Part 2: vol 5 no 6 June 1992)
- - originally written for the Intel 186 but ported to HC11
- source code for UCOS11
-
- Single- and Multiple-Chip Microcomputer Interfacing
- - G.J. Lipovski
- - Copyright 1988
- - 478 pages
- - ISBN 0-13-810557-X (Prentice-Hall Edition)
- ISBN 0-13-810573-1 (Motorola Edition)
- - Based around the 68HC11 it covers both hardware and
- software at undergraduate level, but the emphasis is on
- interfacing.
- - Chapter titles:
- 1 Microcomputer Architecture
- 2 Programming Microprocessors
- 3 Bus Hardware and Signals
- 4 Parallel and Serial I/O
- 5 Interrupts and Alternatives
- 6 Analog Interfacing
- 7 Counters and Timers
- 8 Communications Systems
- 9 Storage and Display Systems
-
- Single- and Multiple- Chip Microcomputer Interfacing (Lab Manual)
- - Peter Song and G. Jack Lipovski
- - Prentice-Hall, 1988
- - ISBN 0-13-811605-9
- - Support for the above book. Examples based around the Motorola
- EVB and the BUFFALO monitor or the EVBU (or 3-chip micro) and
- PC-Bug11.
-
- User Manual for the CDP1802 COSMAC Microprocessor
- - RCA, 1977
- - contains useful hardware and software techniques
-
-
- 9.2) Data and Reference Books
-
- Motorola
- - M68hc11 Reference Manual, ref # M68HC11RM/AD
- this document is the "bible" of the 6811 and is a must-have
- for any serious 6811 programmer
- contact Motorola at 800-521-6274 (in the U.S.) to get a free
- copy of this manual
- - MC68hc811E2 Programming Reference Guide, ref # M68HC811E2RG
- a pocket-sized guide to the version of the 6811 used on the
- Mini Board, "ownership of this handy reference is proof of
- being a true 6811 nerd" - by Fred Martin
-
- National Semiconductor - (800)272-9959 for copies
- - COP8 Databook, ref # 400007
- - COP8 Selection Guide, ref # 630006
- - COP8 Designers Information Kit, ref # 6300007-005
- contains: - COP8 Databook (1994 Edition)
- - COP8 Selection Guide (1994 Edition)
- - Independent 8-bit Instruction Set Analysis
- - Independently prepared software analysis of
- National's COP8, Motorola's M68Hc05, Intel's
- 80X51, and Microchip's PIC16C5X
- - Utility and Overview Disks
- - Self-lead overview on COP8, includes electronic
- selection guide and sample application code
- - COP8 Utility Disk, Mac ref # 6300000, Windows ref # 630001
- typical microcontroller applications and sample code
- available by ftp nscmicro.nsc.com in/pub/COP8
- - COP8 Overview Disk, Mac ref # 630004, Windows ref # 630005
- self-lead COP8 overview, shows product features/benifits
- and includes a electronic selection guide (2 disks)
- available by ftp nscmicro.nsc.com in /pub/COP8
-
-
- 9.3) Periodicals
-
- Various magazines and journals (journals seems to be THE popular name
- for magazines these days) provide articles from time to time on
- microcontrollers. If you are just starting out learning, pick those
- magazines that feature construction articles.
-
- The Computer Applications Journal (Circuit Cellar Ink)
- - programming and construction articles
- - POB 7694, Riverton, NJ 08077-8784
- - Fax: (203)872-2204
- - Voice orders: (609) 786-0409
- - On-line orders (BBS): (203) 871-1988
- - Email orders: ken.davidson@circellar.com
- - $21.95, $31.95 surface Canada and Mexico,
- $49.95 air all other countries
-
- Computer Design
- - industry announcements and trends
- - One Technology Park Drive, P.O. Box 990, Westford, MA 01886
- - (508)692-0700
-
- The Computer Journal
- - programming and construction articles
- - PO Box 535, Lincoln 96648
-
- Dr. Dobbs Journal
- - programming articles, concepts, and designs
- - 411 Borel Ave., San Mateo, CA 94402
- - (415)358-9500
-
- Electronic Engineering Times
- - industry announcements and trends
- - 500-B Bi-County Boulevard, Farmingdale, NY 11735
- - (516)293-3000
-
- Electronics Now
- - construction articles
- - Box 55115, Boulder, CO 80321-5115
- - $19.97 one year
-
- Elektor Electronics
- - programming and construction articles
- - World Wide Subscription Service Ltd
- Unit 4, Gibbs Reed Farm, Pashley Road
- Ticehurst TN5 7HE, England
- - 27 UK pounds
- or
- - Old Colony Sound Lab, P.O. Box 243, Peterborough, NH 03458
- - Tel. (603) 924-6371, 924-6526
- - Fax: (603) 924-9467
- - $57 USA and Canada per year
-
- Embedded Systems Programming
- - programming and systems design articles
- - Miller Freeman Publications
- - 500 Howard St., San Francisco, CA 94105
- - (415) 397-1881
-
- Inquisitor Magazine
- - If you're the type that watched Gilligan's Island for its
- socio-political insights, then you'll love a new 'zine that
- just crossed my desk - Inquisitor Magazine. It's general
- philosophy seems to be ... well, it seems to be ... uh, yeah!
- Technical in nature, bizarre, tongue in cheek, eclectic,
- electric, did I mention bizarre(?), and lots of fun. Worth
- looking at if you like the out of the ordinary. The moving
- force behind this magazine is Daniel Drennan, who seems to have
- suffered from an overdose of radiation from his computer
- monitor ;-).
- - Planetarium Station, P.O.Box 132
- New York, NY 10024-0132
- - (212)595-8370
- - Email: inquisitor@echonyc.com
- - $16 per year (4 issues)
-
- Microcomputer Journal (formerly Computer Craft)
- - programming and construction articles
- - 76 N. Broadway, Hicksville, NY 11801
- - $18.95 one year, foreign $23.00, foreign air mail $76.00
-
- Midnight Engineering
- - 1700 Washington Ave., Rocky Road, CO 81067
- - (719)254-4553
-
- MW Media - Product Directories
- - Motorola Microcontroller Tools Directory
- ('94 edition out in 3 weeks)
- - Motorola 68K Source ('94 edition available now)
- - Intel Development Tools Handbook ('95 edition just beginning)
- (survey of commercial development tools for the 8051, 8096,
- and 80186 lines of Intel microprocessors)
- - Embedded Intel 386 Directory (released in Aug '94)
- - Intel 486/Pentium directory (forthcoming in '95)
- - 8051 Product Directory ('94 edition out in 4 weeks)
- (survey of various 8051 products)
- - Hitachi Microcontroller Development Tools Directory
- (out in '95)
- - AMD FusionE86 Directory (out in '95)
- (186,386,486)
- - AMD 29K Directory (pending in '95)
- - Low Power Product Directory (out in '95)
- (3.3. volts and lower)
- - DSP Directory (released in May '94)
- - Multimedia CD (hopefully out in '95)
- - These documents could very well be a "must" if you're into
- serious development using any of these chips. If you are
- "just" a hobbyist, see how the "other half" lives.
- - FREE to qualified developers
- - MW Media
- - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA 95113
- - (408)288-4721 (408)286-4200 FAX: (408)288-4728
-
- Nuts & Volts Magazine
- - A National Publication for the Buying and Selling of
- Electronic Equipment
- - 430 Princeland Court, Corona, CA 91719
- - Mailed third class, USA only: $17.00 one year
- $31.00 two years
- - Mailed first class, one year only: $34.00-USA
- $35.00-Canada/Mexico
- - Foreign/Air Mail - $70.00; Foreign/Surface - $39.00
- - (800)783-4624
- - Email: 74262.3664@Compuserve.com
-
-
- 9.4) Internet newsgroups
-
- Various newsgroups frequently have discussions or information on
- various microcontrollers. Among some of the more useful (especially
- the first 3 newsgroups):
-
- comp.robotics
- Microcontrollers figure heavily in robotics projects. You will
- find a lot of information about the subject in this newsgroup.
- Even if you aren't building a robot, check this newsgroup out.
- Lots of 68hc11 activity, too.
-
- sci.electronics
- alt.comp.hardware.homebuilt
- Two good places to find [mostly technical] discussions on
- microcontroller use and implementation. Most of the participants
- are crazy about "rolling their own", and are eager to share their
- knowledge.
-
- comp.realtime
- Occasional discussions about real-time use of microcontollers.
-
- comp.sys.m68k
- The full line of Motorola 68000 microprocessors is discussed in
- this newsgroup, including the very powerful and advanced
- microcontrollers based on this family.
-
- comp.sys.6809
- This newsgroup covers an old-time favorite, the 6809
- microprocessor, which is commonly used for control applications.
- Motorola 8 bit microprocessors and microcontrollers (6805, 6811,
- etc.) are also discussed in this newsgroup.
-
- comp.sys.intel
- Mostly trends and development are discussed in this newsgroup.
- From time to time you will find a discussion on some obtuse
- technical problem or feature. Lately, the participants seem to
- spend all of their time whining about the Pentium bug.
-
- comp.lang.misc
- Sometimes questions or discussions on different microcontroller
- topics pop up here. I guess it's the ".misc" that attracts these
- questions.
-
- comp.ai.fuzzy
- Fuzzy logic is rapidly becoming an increasingly important aspect
- of [microcontroller based] control systems. This group might very
- well become an important forum for those involved in developing
- control systems.
-
- comp.dsp
- Discussions on Digital Signal Processsing
-
- comp.sys.ti
- Texas Instruments products discussed here
-
- sci.engr.control
- This forum is for the discussion of control and embedded systems.
-
- sci.engr.semiconductors
-
-
- 9.5) Internet sources of information on specific microcontrollers
-
- If you are interested in finding sources of information on a specific
- microcontroller, check out the really fine FAQs ;-) that have been
- compiled for the more popular microcontrollers.
-
- Subject: PIC microcontrollers
- Newsgroups: comp.realtime
- comp.robotics
- sci.electronics
- sci.electronics.repair
- Archive: rtfm.mit.edu : <plus all mirror sites>
- /pub/usenet/comp.answers/microcontroller-faq/PIC
- /pub/usenet/sci.answers/microcontroller-faq/PIC
- /pub/usenet/news.answers/microcontroller-faq/PIC
- Maintainer: Tom Kellett
- Email: Tom@takdsign.demon.co.uk
-
- Subject: 8051 microcontrollers
- Newsgroups: comp.sys.intel
- comp.realtime
- comp.robotics
- comp.lang.forth
- sci.electronics
- Archive: rtfm.mit.edu : <plus all mirror sites>
- /pub/usenet/comp.answers/microcontroller-faq/8051
- /pub/usenet/sci.answers/microcontroller-faq/8051
- /pub/usenet/news.answers/microcontroller-faq/8051
- Maintainer: Russ Hersch
- Email: sibit@datasrv.co.il
-
- Subject: 68hc11 microcontrollers
- Newsgroups: comp.realtime
- comp.robotics
- sci.electronics
- Archive: rtfm.mit.edu : <plus all mirror sites>
- /pub/usenet/comp.answers/microcontroller-faq/68hc11
- /pub/usenet/sci.answers/microcontroller-faq/68hc11
- /pub/usenet/news.answers/microcontroller-faq/68hc11
- Maintainer: Russ Hersch
- Email: sibit@datasrv.co.il
-
- Subject: Motorola 68K microprocessor line
- Newsgroups: comp.sys.m68k
- Archive: bode.ee.ualberta.ca : pub/motorola/general
- ftp.luth.se : /pub/misc/motorola/faq
- file name of archive is m68kfaq?.zip (? is version)
- Comments: also includes information on the 683xxx and 68hc16
- Maintainer: Robert Boys - Ontario, Canada
- Email: r.boys@genie.geis.com
- or
- fboys@uoguelph.ca
-
-
- Several other FAQs have been compiled that address various aspects of
- microcontroller design and implementation.
-
- Subject: Robotics
- Newsgroups: comp.robotics
- Maintainer: Kevin Dowling
- (412)268-8830
- Email: nivek@ri.cmu.edu
- Smail: Carnegie Mellon University
- The Robotics Institute
- Pittsburgh, PA 15213
-
- Subject: Electronics
- Newsgroups: sci.electronics
- Comments: There are a number of FAQs available in this newsgroup
- on various subjects. Among some of the subjects covered
- are: LCDs, stepper motors, suppliers, etc.
-
- Subject: Real-time
- Newsgroups: comp.realtime, comp.answers, news.answers
- Archive: rtfm.mit.edu : pub/usenet/comp.realtime
- Maintainer: Mark Linimon
- Lonesome Dove Computing Services
- Roanoke, Virginia
- Email: linimon@nominil.lonesome.com.
-
- Subject: Neural Networks
- Newsgroups: comp.ai.neural-nets,comp.answers,news.answers
- Archive: rtfm.mit.edu : pub/usenet/neural-net-faq
- Maintainer: Lutz Prechelt
- Email: prechelt@ira.uka.de
-
- Subject: Fuzzy Logic
- Newsgroups: comp.ai.fuzzy,comp.answers,news.answers
- Archive: rtfm.mit.edu : pub/usenet/fuzzy-logic/
- Maintainer: Mark Kantrowitz
- Email: mkant+@cs.cmu.edu
-
- Subject: Embedded Systems FAQ Roadmap
- Comments: Lists various sources of information on embedded systems
- found on the Internet
- Archive: email cera@netcom.com
- send EMBFAQ in SUBJECT line
- Maintainer: CERA Research
-
-
- 10) MICROCONTROLLER FREE SOFTWARE SOURCES
-
- This section includes descriptions and references to free
- microcontroller software. FTP sites and BBSs contain many quality
- packages and code samples for free. For heavy duty use, you might
- prefer the many commercial packages that are available. With the
- public domain (or free) stuff, you're usually on your own. The
- commercial packages usually provide extensive documentation and
- support.
-
- If you are looking for commercial software for the 8051, 68hc11, or
- PIC, then check out the FAQs on these microcontrollers for details on
- what is available.
-
-
- 10.1) FTP sites
-
- The following is a list of the anonymous ftp sites that have source
- code and programming languages for various microcontrollers. There
- are many others that are not listed here that contains bits and
- pieces. Usually you can find them using Archie and searching for
- variations on the name of the microntroller you are looking for.
-
- ftp.pppl.gov (formerly lyman.pppl.gov)
- - this is a great source of 8051 stuff
- /pub/8051
- /pub/incoming - check this out for new untested/unsorted items
-
- ftp.mcc.ac.uk
- - this is a new 8051 ftp site
-
- ftp.intel.com
- - good source of stuff the MCS-51 and MCS-96 families
- /pub/mcs51 - various development tools and sample code for the
- MCS-51 family
- /pub/mcs96 - various development tools and sample code for the
- MCS-96 family
-
- nctuccca.edu.tw
- - mirror of ftp.intel.com
- /vendors/Intel
-
- freeware.aus.sps.mot.com (Motorola)
- - the ftp site version of the freeware BBS
- - lots of free software for the HC05, HC08, HC11, HC16, 680x0,
- 683xx, and PowerPC
- - also see the Web pages in the next section
-
- nscmicro.nsc.com
- - the authoratative source for COP8 infomation
- /pub/COP8 - various develepment tools and sample code for the
- COP8 family including most application notes
-
-
- ftp.ee.ualberta.ca (preferred address)
- bode.ee.ualberta.ca
- wattson.ee.ualberta.ca
- - HUGE archive of all sorts of stuff on the 68hc11 (lots of other
- good stuff too!)
- - you'll have fun mucking around this ftp site, there's piles of
- stuff here
- /pub/cookbook
- /pub/motorola
- /pub/motorola/68hc11
- /pub/motorola/mcu11
-
- cherupakha.media.mit.edu (cher.media.mit.edu)
- - HUMONGOUS archive of all sorts of stuff on the 68hc11 including
- the 6.270 robotics project, Mini Board, F1 board, and more
- (lots of other good stuff too!)
- - you'll lose yourself rooting around this ftp site, there's
- piles of stuff here (assemblers, tools, C compilers, plans and
- schematics, and many other items)
- /pub/6270 - tools, docs, schematics, etc. for the MIT 6.270
- robotics project using a 68hc11-based development system
- /pub/6811 - software, schematics, etc. for the 68hc11-based F1
- board
- /pub/incoming - various unsorted or new items
- /pub/miniboard - software, docs, schematics, etc. for the 3"x2",
- 68hc11-based Mini Board controller
-
- ftp.funet.fi (nic.funet.fi)
- - this is a good source for various microcontrollers
- /pub/microprocs/ (subdirectories include: 1802, 6805, 8048,
- 8051, 8096, PIC and many other microprocessors)
-
- ftp.sics.se
- - many assemblers, utilities, and application notes for the PIC
- - Microchip BBS mirror
- - ftp site of Memec Scandinavia, Microchip's Swedish agent.
- /pub/mchipsoft
-
- ernie.uvic.ca
- - files provided by local Motorola representative
- /pub (subdirectories include: ibm, dsp96k, dsp56100, dsp56k,
- dsptools, develop, mac, mcu302, mcu332, mcu11, pgmr, mcu16,
- mcu, market, qa, general, m68k, evm, dsp)
-
- wpi.wpi.edu
- - basic stamp information
- - PIC "C" compiler
- /stamp
-
- ftp.std.com
- /vendors/microchip/
-
- ftp.luth.se
- /pub/misc/microchip - PIC information
- /pub/misc/microchip/stamp/mirror - mirror of wpi.wpi.edu
- /pub/languages/assembler - various freeware assemblers
-
- ti.com
- read the 00readme file first or you'll be lost
-
- hpcsos.col.hp.com
- /misc/ns32k/beowulf
-
- ftp.netcom.com
- /pub/imagecft - prerelease version of ImageCraft C for 68hc11
-
- info@circellar.com - Email (not ftp)
- - send Email to get information file on services available
- - all Circuit Cellar INK and BYTE related files available
-
- asterix.inescn.pt - FORTH archive
- /pub/forth
-
- ftp.ultranet.com
- /biz/mchip - PIC information
- - also see the Web page: http://www.ultranet.com/biz/mchip
-
- ftp.mrc-bbc.ox.ac.uk
- /pub/microchip
-
- ftp.oak.oakland.edu
- - has information and software for a wide range of
- microprocessors and microcontrollers
-
- ftp.uni-erlangen.de
- - information on PIC
- /mounts/epix/public/pub/Multimedia/VideoCrypt/
- microcontroller/microchip.bbs
-
- ftp.armory.com (Steve Walz)
- - /pub/user/rstevew/8051
- - /pub/user/rstevew/TB8051
- - /pub/user/rstevew/incoming
-
- ftp.cygnus.com (Jeff Fox)
- - source of information and software on the MuP21 Forth
- microcontroller
- /pub/forth - MUP21FTP.ZIP includes a software simulator for
- the MuP21 and and the upcoming F21.
- also see the Web page: http://www.dnai.com/~jfox
-
- ftp.best.com
- /pub/cera
- ftp.netcom.com
- /pub/ce/cera
- - embedded systems FTP archive
-
- ftp.parallaxinc.com
- /pub
- - ftp site of Parallax
- "Cool PIC development tools & the BASIC Stamp"
-
- ftp.std.com - Minds-Online ftp site
- /customers2/nonprofits/minds-online
- - Chock full of compilers, assemblers, code, articles, fuzzy
- logic, and much more.
-
-
- 10.2) Web pages
-
- http://motserv.indirect.com (Motorola)
- - Motorola's semiconductor WWW page
- - on-line searchable Master Selection Guide and OEM Price Book
- - 'MFax' service to request all kinds of data sheets
- - a bunch of other cool stuff
-
- http://freeware.aus.sps.mot.com/index.html (Motorola)
- - Motorola's microcontroller WWW page
- - the WWW version of the freeware BBS
- - lots of free software for the HC05, HC08, HC11, HC16, 680x0,
- 683xx, and
- PowerPC
-
- http://www.ultranet.com/biz/mchip
- - source of information on the Microchip PIC
-
- http://www.dnai.com/~jfox
- - source of information and software on the MuP21 Forth
- microcontroller
-
- http://www.cera.com
- - embedded systems information
-
- http://www.parallaxinc.com
- - Parallax Inc. web page
- "Cool PIC development tools & the BASIC Stamp"
-
- http://www.ba-karlsruhe.de/automation/home.html
- - automation and process control
-
-
- 10.3) BBSs
-
- The following BBSs have 8051 information:
-
- Circuit Cellar, Inc.
- - contains code from their magazine articles and from the
- original Circuit Cellar articles in Byte magazine, also
- contains many other interesting items
- - The BBS is mentioned in the masthead of each issue (on the
- table of contents page). Excerpts from the BBS appear in Ken
- Davidson's ConnecTime column in every issue with a description
- of how to access the system at the end of every column.
- - (203)871-1988
- - Voice: (203)875-2751
- - Fax: (203)872-2204
-
- Dunfield Development Systems
- - support for their Micro-C C compiler and development tools
- - includes a lot of nice goodies - CHECK THIS OUT!
- - (613) 256-6289
-
- Electronics Now
- - contains code from their magazine articles
- - (516)293-2283
- - 1200/2400, 8N1
-
- Intel American Marketing Applications Support Bulletin Board System
- - 16 lines, hi-speed modems (14.4K)
- - Lots of useful info and files (including design examples)
- - Full ANSI-BBS with color is recommended, but support for just
- about all terminal types is provided
- - 916-356-3600 (24 hours)
- Auto config: 1200 thru 14.4K Baud
- 8 data bits, no parity, 1 stop
-
- Iota Systems, Inc.
- - Support for their line of hardware and software products
- - (702)831-4732
-
- Don Lekei BBS
- - support for the PIC line of microcontrollers
- - (604)597-3479 (Canada)
-
- Microchip BBS
- - support for the PIC line of microcontrollers
- - Contact by dialing the same number you would use to get to
- Compuserve at 19200,n,8,1, except that you press +<CR> at the
- (garbage) prompt, followed by MCHIPBBS as the host (instead of
- CIS).
-
- ED Teck. Pubs BBS
- - run by Fred Eady who writes for hobbyist magazines
- - good source of information on the PIC
- - (407)454-3198
-
- National Semiconductor COP8 BBS
- - (800)672-6427
- - worldwide telnet to nscmicro.nsc.com
-
- Protel (Microchip PIC software support)
- - (408)243-0125
-
- Parallax Inc.
- - (916)624-7101
-
- Motorola (Austin Texas) BBS
- - terrific, has piles of stuff, only some of which is on
- bode.ee.ualberta.ca
- - (512) 891-3733 (Austin, Texas)
- - V.32 9600 Baud modems w/ MNP-5
- - 8 Data Bits, No Parity, 1 Stop Bit.
-
- Other Motorola BBSs:
- - Munich, Germany: 49-89-92103-111 (2400 baud)
- - Stuttgart, Germany: 49-7031-275496 (19200 baud)
- - San Diego, California: (619) 279-3907
- - Toronto, Ontario, Canada: (416) 497-8989
-
- Philips Semiconductor (parent company of Signetics)
- - support for: standard logic, programmable logic,
- in-car electronics (planned), 8 and 16 bit microcontrollers,
- I2C software, third party software, discrete semiconductors,
- cross assemblers (general), RF (planned)
- - PHIBBS is located in the Netherlands: +31-40-721102
- - maximum 14400 baud / V42bis
- - 24 hours a day available
- - Help desk: +31-40-722749 (9.00 AM - 16.00 PM CET)
-
- Philips Semiconductors (Signetics)
- - support for their 8051 variants
- - contains many good source code items
- - partially mirrored on ftp.pppl.gov and nic.funet.fi
- - (800)451-6644 or (408)991-2406
-
-
- 10.4) Mailing Lists
-
- listserv@oberon.com
- - mailing list for the Mini Board and 6.270 board
- - send a message containing the word "help" for directions
- - mailing list address: robot-board@oberon.com
- - maintainer: gkulosa@oberon.com
-
- listserv@hipp.etsu.edu
- For information, send empty message.
- To subscribe, send message with the body:
- subscribe mc68hc11 your_real_name
-
- listserv@netcom.com - mailing list for Imagecraft C
- to join the mailing list, send the message "subscribe icc11-list"
-
- listserv@mitvma.mit.edu
- to join, send the message "SUB PIC"
- list address is: PIC@mitvma.mit.edu
- to receive the mailing list as a digest, send the message
- SET PIC DIGEST
-
- majordomo@first.gmd.de
- to join, send the message "subscribe crossgcc <your address>"
- in the message body
- Cross GCC mailing list - for building a cross gcc compiler for
- your embedded system.
-
- Philips-News@InetBSystems.us.com
- - send Email with "subscribe" in the subject field to be put
- on list for newsletter
- Philips-archive@InetBSystems.us.com
- - send Email message with the word "help" in the subject line to
- learn how to access the archive
- Philips-forum-request@InetBSystems.us.com
- - send an Email message with the word "subscribe" in the subject
- line to participate in the forum, and receive usage
- instructions and guidelines
- Philips-Info@InetBSystems.us.com
- - send Email message to get information on all of Philips Email
- services
-
- MISC@pisa.rockefeller.edu
- MISC-d@pisa.rockefeller.edu (digested list)
- - a message with "subscribe" on the subject line to one of these
- addesses you will get you signed up
- - a message with "help" on the subject line you will get info on
- how the mail list works
-
- Minds-Online mailing lists
- - One mailing list is for announcing significant postings on the
- Minds-Online ftp site.
- - Another MODERATED mailing list will carry messages from real
- engineers who are working on designs slated for volume
- production. "No tire-kickers, no students, no academics, no
- sleazy something-for-nothing ripoff artists, no hobbyists, and
- no totally lost people will be able to post e-mail." (Uh, it
- looks like that sort of leaves out yours truly, I certainly
- belong in several, if not most, of those categories).
- - send an email request to csmall@tiac.net to be added to these
- lists
-
- Parallel Performance Group (PPG) mailing lists
- - PPG is a provider of high-tech Unix- and PC-based scientific,
- engineering, and graphics software. PPG publishes a free
- monthly electronic-mail newsletters covering a number of
- disciplines of interest to the microcontroller designer.
- - For more information, send email to: info@ppginc.com
-
-
- __________________________________________________________
-
- I disclaim everything. The contents of this article might be totally
- inaccurate, inappropriate, misguided, or otherwise perverse - except for
- my name (hopefully I got that right).
-
- Copyright (c) 1995 by Russell Hersch, all rights reserved.
- This FAQ may be posted to any USENET newsgroup, on-line service, or BBS
- as long as it is posted in its entirety and includes this copyright
- statement.
- This FAQ may not be distributed for financial gain.
- This FAQ may not be included in commercial collections or compilations
- without express permission from the author.
-
- -----------------------------------
- Russ Hersch - sibit@datasrv.co.il
-